Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору


Код:
 
Option Compare Database
Option Explicit
 
Public Const ForReading = 1
Public Const ForWriting = 2
 
Dim dbDATA As Database
Dim tdfLoop As TableDef
 
Public Sub ListTablesToFile()
     
    Const sFileName = "ListTables.txt"
    Dim dbDATA As Database
    Dim tdfLoop As TableDef
    Dim sResult, sStorePath As String
 
   
  On Error GoTo ErrorHandler
 
  Set dbDATA = DBEngine.Workspaces(0).Databases(0)
      sResult = "Íà äàòó " + Date$ + vbCrLf
      ' sStorePath = dbDATA.Name
      sStorePath = CodeProject.FullName
      sStorePath = Left(sStorePath, InStrRev(sStorePath, ".")) + "db.txt"
           
  With dbDATA
     sResult = sResult & .TableDefs.Count & " TableDefs in " & .Name + vbCrLf
 
     For Each tdfLoop In .TableDefs
 
       sResult = sResult + "  " & tdfLoop.Name + "  " & tdfLoop.Connect + vbCrLf
     Next tdfLoop
  End With
 
  Call SaveToFile(sResult, sStorePath)
  MsgBox sStorePath
 
Exit_Sub:
  Exit Sub
ErrorHandler:
  MsgBox Error$ & vbCrLf & tdfLoop.Name
  Resume Exit_Sub
End Sub
 
 
Public Sub ProjectModulesToExport()
    Const adVarChar = 200
    Const MaxCharacters = 255
     
    Dim sStorePath, sResult, sR2, sModFName As String
    Dim FSO As Object
    Dim modLoop As Module
    Dim i, iC As Integer
   
    Dim obj As AccessObject
    Dim dbDATA As DAO.Database
    Dim qdfLoop As QueryDef
     
    Dim DataList As Object
   
     
  Set FSO = CreateObject("Scripting.FileSystemObject")
   
  Set DataList = CreateObject("ADODB.Recordset")
  DataList.Fields.Append "SortName", adVarChar, MaxCharacters
  DataList.Open
   
 
  '  ==============================================================
  ' Ýêñïîðò ìîäóëåé
  sStorePath = CodeProject.FullName
  sStorePath = Left(sStorePath, InStrRev(sStorePath, ".") - 1) + "_Modules\"
  If Not FSO.FolderExists(sStorePath) Then FSO.CreateFolder (sStorePath)
   
  sResult = "  Íà äàòó " + Date$ + vbCrLf
  sResult = sResult & "  " & Application.Modules.Count & " Modules in  " & CurrentProject.FullName & vbCrLf
   
 ' For i = 0 To Application.Modules.Count - 1
 '   With Application.Modules(i)
  For i = 0 To CurrentProject.AllModules.Count - 1
     
    DoCmd.OpenModule CurrentProject.AllModules(i).Name
     
     
    With Application.Modules(CurrentProject.AllModules(i).Name)
       
      ' sResult = sResult + .Name + vbCrLf
      DataList.AddNew
      DataList("SortName") = .Name
      DataList.Update
       
      sModFName = ReplaceInvalidChars(.Name)
       
      iC = .CountOfLines
      If iC = 0 Then iC = 1
      sR2 = Application.Modules(i).Lines(1, iC)
       
      Call SaveToFile(sR2, sStorePath + sModFName + ".bas")
    End With
  Next i
   
   
  DataList.Sort = "SortName"
  DataList.MoveFirst
  Do Until DataList.EOF
    sResult = sResult & DataList.Fields.Item("SortName") & vbCrLf
    DataList.MoveNext
  Loop
   
  DataList.Close
   
  Call SaveToFile(sResult, sStorePath + "Candidate.modules.txt")
 
  '  ==============================================================
  ' Ýêñïîðò Ôîðì
   
  DataList.Fields.Append "SortName", adVarChar, MaxCharacters
  DataList.Open
   
  sResult = "  Íà äàòó " + Date$ + vbCrLf
  sResult = sResult & "  " & CurrentProject.AllForms.Count & " Forms in  " & CurrentProject.FullName & vbCrLf
   
  For i = 0 To CurrentProject.AllForms.Count - 1
    With CurrentProject.AllForms(i)
      ' sResult = sResult + .Name + vbCrLf
      DataList.AddNew
      DataList("SortName") = .Name
      DataList.Update
       
       
    End With
  Next i
   
  DataList.Sort = "SortName"
  DataList.MoveFirst
  Do Until DataList.EOF
    sResult = sResult & DataList.Fields.Item("SortName") & vbCrLf
    DataList.MoveNext
  Loop
  DataList.Close
     
  Call SaveToFile(sResult, sStorePath + "Candidate.forms.txt")
 
 
  '  ==============================================================
  ' Ýêñïîðò Îò÷¸òîâ
     
  DataList.Fields.Append "SortName", adVarChar, MaxCharacters
  DataList.Open
   
  sResult = "  Íà äàòó " + Date$ + vbCrLf
  sResult = sResult & "  " & CurrentProject.AllReports.Count & " Reports in  " & CurrentProject.FullName & vbCrLf
   
  For i = 0 To CurrentProject.AllReports.Count - 1
    With CurrentProject.AllReports(i)
       
      ' sResult = sResult + .Name + vbCrLf
      DataList.AddNew
      DataList("SortName") = .Name
      DataList.Update
    End With
  Next i
   
  DataList.Sort = "SortName"
  DataList.MoveFirst
  Do Until DataList.EOF
    sResult = sResult & DataList.Fields.Item("SortName") & vbCrLf
    DataList.MoveNext
  Loop
  DataList.Close
   
  Call SaveToFile(sResult, sStorePath + "Candidate.reports.txt")
 
  '  ==============================================================
  ' Ýêñïîðò çàïðîñîâ
  sStorePath = CodeProject.FullName
  sStorePath = Left(sStorePath, InStrRev(sStorePath, ".") - 1) + "_Queries\"
  If Not FSO.FolderExists(sStorePath) Then FSO.CreateFolder (sStorePath)
   
  sResult = sResult & CurrentData.AllQueries.Count & " Queries in  " & CurrentProject.FullName & vbCrLf
   
   
 
  Set dbDATA = DBEngine.Workspaces(0).Databases(0)
      sResult = "Íà äàòó " + Date$ + vbCrLf
 
  With dbDATA
     
     sResult = sResult & .QueryDefs.Count & " QueryDefs in " & .Name + vbCrLf
 
     For Each qdfLoop In .QueryDefs
       sResult = sResult + "  " & qdfLoop.Name + vbCrLf
       sModFName = ReplaceInvalidChars(qdfLoop.Name)
       
       sR2 = qdfLoop.SQL
       Call SaveToFile(sR2, sStorePath + sModFName + ".sql")
     Next qdfLoop
  End With
   
  Call SaveToFile(sResult, sStorePath + "Candidate.queries.txt")
End Sub
 
 
Public Sub ReportToAnotherMDB()
  Dim i As Integer
  Dim sCurname As String
   
   
  For i = 0 To CurrentProject.AllReports.Count - 1
    With CurrentProject.AllReports(i)
     
      sCurname = .Name
' DoCmd.RunCommand acCmdMakeMDEFile
         
'   Call DoCmd.CopyObject("D:\Cam_3000\db1.mdb", sCurname, acReport, sCurname)
'   Call DoCmd.DeleteObject(acReport, sCurname)
 
' sResult = sResult + .Name + vbCrLf
    End With
  Next i
 
End Sub
 
 
 
Public Sub SaveToFile(sString, sFileName As String)
    Dim FSO, TextStream
     
  On Error GoTo ErrorHandler
 
  Set FSO = CreateObject("Scripting.FileSystemObject")
 
  Set TextStream = FSO.OpenTextFile(sFileName, ForWriting, True)
 
  TextStream.Write (sString)
  TextStream.Close
   
Exit_Sub:
  Set FSO = Nothing
  Exit Sub
ErrorHandler:
  MsgBox Error$
  Resume Exit_Sub
End Sub
 
Public Function ReplaceInvalidChars(sInput As String)
  Dim sTemp
   
  sTemp = Replace(sInput, "\", "_")
  sTemp = Replace(sTemp, "/", "_")
  sTemp = Replace(sTemp, """", "'")
 
  ReplaceInvalidChars = Replace(sTemp, "|", "_")
End Function
 
Public Function GetProjectPath() As String
  Dim sResult As String
   
  sResult = CodeProject.FullName
  GetProjectPath = Left(sResult, InStrRev(sResult, "\"))
End Function
 


Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 09:11 03-06-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru