VBA/Excel/Access/Word/Access/Recordset Save

Материал из VB Эксперт

Перейти к: навигация, поиск

Copy Records to a Text File

 
Sub WriteToFile()
   Dim conn As ADODB.Connection
   Dim myRecordset As ADODB.Recordset
   Dim f As ADODB.Field
   Dim myFileSystemObject As Object
   Dim txtfile As Object
   Set conn = New ADODB.Connection
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\mydb.mdb"
   Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
   Set txtfile = myFileSystemObject.CreateTextFile("c:\testfile.txt", True)
   Set myRecordset = New ADODB.Recordset
   myRecordset.Open "[Order Details]", conn
   With myRecordset
      For Each f In .Fields
         txtfile.Write (f.Name)
         txtfile.Write Chr(9)
      Next
      txtfile.WriteLine
      txtfile.Write myRecordset.GetString(adClipString)
      .Close
   End With
   txtfile.Close
   Set myRecordset = Nothing
   conn.Close
   Set conn = Nothing
End Sub



Saving Records to a Disk File

 
Sub SaveRecordsToDisk()
    Dim conn As ADODB.Connection
    Dim myRecordset As ADODB.Recordset
    Dim strFileName As String
    Dim strNorthPath As String
    strFileName = CurrentProject.Path & "\Companies.rst"
    strNorthPath = CurrentProject.Path & "\mydb.mdb"
     On Error GoTo ErrorHandle
     Set conn = New ADODB.Connection
     With conn
          .Provider = "Microsoft.Jet.OLEDB.4.0"
          .ConnectionString = "Data Source = " & strNorthPath
          .Mode = adModeReadWrite
          .Open
      End With
     Set myRecordset = New ADODB.Recordset
     With myRecordset
        .CursorLocation = adUseClient
        .Open "Customers", conn, adOpenKeyset, adLockBatchOptimistic, adCmdTable
        .ActiveConnection = Nothing
        .Save strFileName, adPersistADTG
        .Close
      End With
      Debug.Print "Records were saved in " & strFileName & "."
ExitHere:
    Set myRecordset = Nothing
    Exit Sub
ErrorHandle:
    If Not IsEmpty(Dir(strFileName)) Then
      Kill strFileName
      Resume
    Else
      MsgBox Err.Number & ": " & Err.Description
      Resume ExitHere
    End If
End Sub