1

I have put together a procedure to cycle through a table containing paths to text files and import them into the database.

Reason for procedure: The reason for this is I am building a back end to many reporting databases that rely on nightly updated text files. Recently they changed the server name and file names for these files, so I'm trying to build something more reliable so I don't have to run through the link table wizard making sure all the data types are exactly the same as before.

Issue: The issue I have is the With .edit .update isn't acting like I thought it should and updating the field 'Updated' in the table to today's date.

Here is the code. I'm still new to programming, so apologies.

Private Sub ImportAll()
' Loops through table containing paths to text files on network and imports
Dim ID As Integer
Dim netPath As String
Dim netDir As String
Dim netFile As String
Dim localTable As String
Dim activeTable As Boolean
Dim updatedTable As Date
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Tables")

Do Until rst.EOF
    ID = rst.Fields("Table ID").Value
    netDir = rst.Fields("Network Location").Value
    netFile = rst.Fields("File Name").Value
    localTable = rst.Fields("Local Table Name").Value
    activeTable = rst.Fields("Active").Value
    updatedTable = rst.Fields("Updated").Value

        If activeTable = True And updatedTable <> Date Then
            If ifTableExists(localTable) Then
                On Error GoTo ImportData_Err
                        CurrentDb.Execute "DELETE * FROM " & localTable, dbFailOnError
                        netPath = netDir & netFile
                        DoCmd.TransferText acImportDelim, , localTable, netPath, True, ""
                            rst.Edit
                            updatedTable = Date
                            rst.Update
                    Else
                        netPath = netDir & netFile
                        DoCmd.TransferText acImportDelim, , localTable, netPath, True, ""
                            With rs
                                .Edit
                                  .Fields("Updated") = Date
                                .Update
                            End With
            End If
        End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
ImportData_Exit:
            Exit Sub
ImportData_Err:
            MsgBox Error$
            Resume ImportData_Exit
End Sub

Thank you.

dataforks
  • 15
  • 3

1 Answers1

0

Where you have

With rs

You meant

With rst

Mistakes such as this can be caught by turning on Option Explicit. Option Explicit means that all variables must be declared.

See here: How do I force VBA/Access to require variables to be defined?

Community
  • 1
  • 1
Mitch Wheat
  • 295,962
  • 43
  • 465
  • 541