Ich teste das folgende Skript.Ich versuche, Tabellenabfrage in Access aus Excel auszuführen
Sub Update_All()
Dim MyDatabase As DAO.Database
Dim MyQueryDef As DAO.QueryDef
Dim MyRecordset As DAO.Recordset
Dim i As Integer
'Step 2: Identify the database and query
PathOfWorkbook = ThisWorkbook.Path
FullPathOfAccess = PathOfWorkbook & "\TRANSACTIONINFO.accdb"
Set MyDatabase = DBEngine.OpenDatabase(FullPathOfAccess)
Set MyQueryDef = MyDatabase.QueryDefs("TRANSBYMONTH")
With MyQueryDef
.Parameters("[StartDate]") = Worksheets("Date").Range("B9").Value
.Parameters("[EndDate]") = Worksheets("Date").Range("B10").Value
End With
'Step 4: Open the query
Set MyRecordset = MyQueryDef.OpenRecordset
'MyQueryDef.Execute
MyQueryDef.Close
aa.DoCmd.SetWarnings WarningsOn:=True
Set MyDatabase = Nothing
Set MyQueryDef = Nothing
' Shut down reference to Access; clean up
aa.Quit
' Refresh all links to Access
ActiveWorkbook.RefreshAll
End Sub
Ich erhalte einen Fehler auf dieser Linie:
Set MyRecordset = MyQueryDef.OpenRecordset
Der Fehler lautet: Laufzeitfehler '3219' Invalid Operation.
Ich denke, eine meiner Referenzen auf ein Objekt wird nicht richtig eingestellt, aber ich weiß wirklich nicht, was das Problem ist.
Ich versuche nur, ein Startdate und EndDate von 2-Zellen in Excel zu greifen und beide zu einer in Access Tabelle erstellen Abfrage übergeben. Wie kann ich das machen?
Danke!
Um Tippfehler Beginnen Sie Ihren Code mit 'Option Explicit' – Luuklag
Können Sie' Debug.Print Worksheets ("Date"). Range ("B10"). Value', zu vermeiden und das Ergebnis geben? Es könnte sich um einen Fehler handeln, der sich auf den Typ dieses Werts bezieht –