Guten Abend zusammen
Ich bin gerade an einem Makro für eine Excel Datei.
Ich habe ein Auswahlliste in der ich eine Id und ein Name anzeige. Diese sind mit einem "|" getrennt.
Um dann auf die Datenbank zu greifen zu können muss ich diese zuerst aufspliten.
Das Funktioniert wunderbar.
Wenn ich aber dann diese ID in eine Variable speichere und dann in der DB suchen will bekomme ich ein Fehlermeldung:
Zu meinem Code:
Ich progammiere noch nicht lang in VB daher habe ich auch nicht wirklich eine Ahnung. Währe aber sehr froh wenn mir da jemand helfen könnte.
Vielen Dank im Voraus!
Ich bin gerade an einem Makro für eine Excel Datei.
Ich habe ein Auswahlliste in der ich eine Id und ein Name anzeige. Diese sind mit einem "|" getrennt.
Um dann auf die Datenbank zu greifen zu können muss ich diese zuerst aufspliten.
Das Funktioniert wunderbar.
Wenn ich aber dann diese ID in eine Variable speichere und dann in der DB suchen will bekomme ich ein Fehlermeldung:
Laufzeitfehler '3001':
Die Argumente sind vom falschen Typ, liege ausserhalbdes Gültigkeitsbereiches oder sind miteinander unvereinbar.
Zu meinem Code:
Code:
'Benötigte Variablen
Dim timestamp1 As String
Dim timestamp2 As String
Dim timestamp3 As String
Dim timestamp4 As String
Dim anlass1 As String
Dim anlass2 As String
Dim anlass3 As String
Dim anlass4 As String
Dim rsEinsatz1 As Recordset
Dim rsEinsatz2 As Recordset
Dim rsEinsatz3 As Recordset
Dim rsEinsatz4 As Recordset
'Recordset erstellen
Set rsEinsatz1 = New ADODB.Recordset
Set rsEinsatz2 = New ADODB.Recordset
Set rsEinsatz3 = New ADODB.Recordset
Set rsEinsatz4 = New ADODB.Recordset
'Ausgewähltes Listen Element teilen
If Not frm_einsaetze.combo_einsatz1.Value = "" Then
timestamp1 = Left$(frm_einsaetze.combo_einsatz1.Value, InStr(frm_einsaetze.combo_einsatz1.Value, "|") - 1)
anlass1 = Right$(frm_einsaetze.combo_einsatz1.Value, InStr(frm_einsaetze.combo_einsatz1.Value, "|") + 1)
MsgBox (timestamp1)
End If
If Not frm_einsaetze.combo_einsatz2.Value = "" Then
timestamp2 = Left$(frm_einsaetze.combo_einsatz2.Value, InStr(frm_einsaetze.combo_einsatz2.Value, "|") - 1)
anlass2 = Right$(frm_einsaetze.combo_einsatz2.Value, InStr(frm_einsaetze.combo_einsatz2.Value, "|") + 1)
End If
If Not frm_einsaetze.combo_einsatz3.Value = "" Then
timestamp3 = Left$(frm_einsaetze.combo_einsatz3.Value, InStr(frm_einsaetze.combo_einsatz3.Value, "|") - 1)
anlass3 = Right$(frm_einsaetze.combo_einsatz3.Value, InStr(frm_einsaetze.combo_einsatz3.Value, "|") + 1)
End If
If Not frm_einsaetze.combo_einsatz4.Value = "" Then
timestamp4 = Left$(frm_einsaetze.combo_einsatz4.Value, InStr(frm_einsaetze.combo_einsatz4.Value, "|") - 1)
anlass4 = Right$(frm_einsaetze.combo_einsatz4.Value, InStr(frm_einsaetze.combo_einsatz4.Value, "|") + 1)
End If
'SQL für DB Abfrage
If Not timestamp1 = "" Then
rsEinsatz1.Open "SELECT * FROM auftrag_tag WHERE auftrags_id = '" + timestamp1 + "'", oConn
End If
If Not timestamp2 = "" Then
rsEinsatz2.Open "SELECT * FROM auftrag_tag WHERE auftrags_id = '" + timestamp2 + "'", oConn
End If
If Not timestamp3 = "" Then
rsEinsatz3.Open "SELECT * FROM auftrag_tag WHERE auftrags_id = '" + timestamp3 + "'", oConn
End If
If Not timestamp4 = "" Then
rsEinsatz4.Open "SELECT * FROM auftrag_tag WHERE auftrags_id = '" + timestamp4 + "'", oConn
End If
'Recordset ausführen Einsatz1
If Not timestamp1 = "" Then
With rsEinsatz1
.MoveFirst
While Not .EOF
frm_selectDate.combo_date1.AddItem rsEinsatz1.Fields("ID").Value + "|" + rsEinsatz1.Fields("date").Value
Wend
End With
End If
If Not timestamp2 = "" Then
'Recordset ausführen Einsatz2
With rsEinsatz2
.MoveFirst
While Not .EOF
frm_selectDate.combo_date2.AddItem rsEinsatz2.Fields("ID").Value + "|" + rsEinsatz2.Fields("date").Value
Wend
End With
End If
'Recordset ausführen Einsatz3
If Not timestamp3 = "" Then
With rsEinsatz3
.MoveFirst
While Not .EOF
frm_selectDate.combo_date3.AddItem rsEinsatz3.Fields("ID").Value + "|" + rsEinsatz3.Fields("date").Value
Wend
End With
End If
'Recordset ausführen Einsatz4
If Not timestamp1 = "" Then
With rsEinsatz4
.MoveFirst
While Not .EOF
frm_selectDate.combo_date4.AddItem rsEinsatz4.Fields("ID").Value + "|" + rsEinsatz4.Fields("date").Value
Wend
End With
End If
'Nicht verwendete Einsätze sperren
If timestamp1 = "" Then
frm_selectDate.combo_date1.Enabled = False
End If
If timestamp2 = "" Then
frm_selectDate.combo_date2.Enabled = False
End If
If timestamp3 = "" Then
frm_selectDate.combo_date3.Enabled = False
End If
If timestamp4 = "" Then
frm_selectDate.combo_date4.Enabled = False
End If
'Formular Datum auslesen anzeigen
Ich progammiere noch nicht lang in VB daher habe ich auch nicht wirklich eine Ahnung. Währe aber sehr froh wenn mir da jemand helfen könnte.
Vielen Dank im Voraus!