ricotumb
Goto Top

Fehler bei OpenRecordset Access VBA 2007

Hallo zusammen,

ich brauche mal dringend Hilfe in einem VBA Code-Stück. Es sollen hierbei Daten aus einer Excel Tabelle in eine Access DB importiert werden. Der Code läuft wunderbar durch bis auf eine Stelle, undzwar:

Set rst = dbs.OpenRecordset(strsql)

Code bis zur besagten Stelle ist unten...

Was mich sehr wundert ist, dass dieses Problem bis vor 2 Wochen noch funktioniert hat, jedoch seit kurzem nicht mehr geht. Als Fehler wird angezeigt:

Laufzeitfehler '3061'
1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

Soweit ich weiß wurde auch an den Spalten der Excel Tabelle nichts verändert. Man kann übrigens im Userform nochmals die Spalten der zu importierenden Datei prüfen und anpassen.

Ich wäre sehr dankbar, wenn mir jemand weiterhelfen könnte!!!

Viele Grüße,
Rico

Function Import_TEM_Umsatz() As String
Dim lchanged As Date
Dim lDatei, lpfad As String
Dim dbs As Database
Dim rst As DAO.Recordset
Dim strsql As String
Dim dbspos As Database
Dim rstpos As DAO.Recordset
Dim dbserr As Database
Dim rsterr As DAO.Recordset
Dim lRec, lRecCount As Integer
'a  
lDatei = "ImportTEMUmsatz"  
lpfad = Form_TEMImport.Pfad_TEM_Umsatz.Value
lchanged = Date + Time
    

Set fs = CreateObject("Scripting.FileSystemObject")  
If fs.FileExists(lpfad) Then
    Set f = fs.GetFile(lpfad)
    lchanged = f.DateLastModified
Else
    Import_TEM_Umsatz = "Importdatei nicht gefunden!!!!"  
    Exit Function
End If
    
'Datumsfelder des Einlesemonats  
lbdate = CDate("01." + LTrim(Str(Form_TEMImport.Import_Monat.Value)) + "." + LTrim(Str(Form_TEMImport.Import_Jahr.Value)))  
ledate = DateAdd("m", 1, lbdate) - 1  
    
'Holen der Feldnummer aus der Feld-Datei  
F_TEM_OBJID = Get_Import_FeldNr("TEM Umsatz", "EventID")  
F_TEM_Umsatz = Get_Import_FeldNr("TEM Umsatz", "Umsatz")  
F_TEM_Beginn = Get_Import_FeldNr("TEM Umsatz", "Beginn")  
F_TEM_Description = Get_Import_FeldNr("TEM Umsatz", "Description")  
F_TEM_Kunde = Get_Import_FeldNr("TEM Umsatz", "Kunde")  
F_TEM_Ende = Get_Import_FeldNr("TEM Umsatz", "Ende")  
F_TEM_Bookdate = Get_Import_FeldNr("TEM Umsatz", "Bookdate")  
    
'Einlesen EXCEL TEM Events  
DoCmd.DeleteObject acTable, lDatei
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
        lDatei, lpfad, True

'Löschen der TEM Daten im Monat  

lbamdat = Str(Month(lbdate)) + "/" + Str(Day(lbdate)) + "/" + Str(Year(lbdate))  
leamdat = Str(Month(ledate)) + "/" + Str(Day(ledate)) + "/" + Str(Year(ledate))  

lsql = "UPDATE AnfragePosition SET [Umsatz TEM]=0, [ID TEM]=''"  
lsql = lsql + " WHERE ([Datum]>=#" + lbamdat + "# AND [Datum]<=#" + leamdat + "#)"  

DoCmd.RunSQL (lsql)

'Löschen der alten gespeicherten Fehlerdaten  
lsql = "DELETE * FROM ImportTEMFehler"  
DoCmd.RunSQL (lsql)

'Durchlaufen der Importdaten  
Set dbs = CurrentDb()

strsql = "SELECT * FROM [ImportTEMUmsatz]"  
strsql = strsql + " WHERE NOT [Price]=0 AND ([Begin]>=#" + lbamdat + "# AND [Begin]<=#" + leamdat + "#)"  
strsql = strsql + " ORDER BY [Obj#ID]"  
Set rst = dbs.OpenRecordset(strsql)

Content-Key: 143254

Url: https://administrator.de/contentid/143254

Printed on: April 19, 2024 at 05:04 o'clock

Member: RicoTumb
RicoTumb May 20, 2010 at 14:43:09 (UTC)
Goto Top
Hallo,

das Problem hat sich gelöst =)) Es lag an der ORDER BY Zeile. Der Feldname war wohl nicht mehr korrekt. Aber auch durch auskommentieren der Zeile läuft alles, da die Zeile ja eigentlich nur für die Sortierung sorgt.

Grüße