Probleme mit Openrecordset und SQL-String mit Parameter

21/10/2008 - 20:00 von Joerg M. | Report spam
Hi,

Access 2003 und Outlook 2003

Ich habe in Outlook VBA einen Zugriff auf MSAccess hergestellt.
Im Formular gibt es ein DropDown (cmbAz) mit Werten. Die Werte sollen dann
beim SQL mit verarbeitet werden, als Filterkriterium für eine Spalte aus dem
SQL, nàmlich tblVorgang.txtAz. Das Ergebnis wird über ein Array einem anderen
Kombinationsfeld als Datengrundlage zur Verfügung gestellt, um sozusagen die
passenden Auswahlwerte zu erhalten.

Gebe ich in der Where-Bedingung fest den Wert ein, der eigentlich flexibel
aus dem DropDwon cmbAz kommen soll, funktioniert es.

Hier der Code:

Private Sub cmbAz_Change()
Dim rst As DAO.Recordset
Dim cmbVgArray(99, 2)
Dim ctl As Object
Dim strSQL
Dim oDataBase As DAO.Database
Dim a As String
Set oDataBase = OpenDatabase("Pfad\Datenbank.mdb")
strSQL = "SELECT tblVorgang.txtVg, tblVorgang.txtOn, tblVorgang.txtVgName "
& _
"FROM tblAz RIGHT JOIN tblVorgang ON tblAz.txtAz = tblVorgang.txtAz " & _
"WHERE (((tblVorgang.txtAz)=""100000""));"
Set rst = oDataBase.OpenRecordset(strSQL, dbOpenSnapshot)
Set ctl = UserForm2.cmbVgOn
ctl.ColumnCount = 3
cmbVgArray(99, 2) = rst.GetRows(100)
ctl.Column() = cmbVgArray(99, 2)
End Sub

Jetzt soll das ganze ja nicht fest verdrahtet sein, sondern abhàngig davon
sein, was im DropDwon cmbAz gewàhlt wird (z.B. der Wert 100000).

Ich habe nun versucht, die Where-Klausel wie folgt anzupassen:

"WHERE (((tblVorgang.txtAz)=""cmbAz""));"
Laufzeitfehler 3021: Kein aktueller Datensatz

"WHERE (((tblVorgang.txtAz)="cmbAz"));"
Fehler beim Kompilieren - Erwartet: Anweisungsende

"WHERE (((tblVorgang.txtAz)=" & cmbAz & "));"
Laufzeitfehler 3464: Datentypen in Kriterienausdruck unvertràglich
[Hinweis: tblVorgang.txtAz ist in Access als Textfeld definiert]

dim a as string
a = cmbAz
"WHERE (((tblVorgang.txtAz)=" & a & "));"
Laufzeitfehler 3464: Datentypen in Kriterienausdruck unvertràglich

dim a as string
a = "100000
"WHERE (((tblVorgang.txtAz)=" & a &"));"
Laufzeitfehler 3464: Datentypen in Kriterienausdruck unvertràglich

Sorry, ich weiß nicht, was ich noch probieren soll (mit der EVAL von DONKARL
hab ich es auch schon versucht).

Wer kann mir helfen?

Zusatz: Weiß jemand, wie ich die gebundene Spalte festlege, wenn es mal
nicht die Spalte 1 (column(0)) sein soll?

Besten Dank,

Gruß Jörg
 

Lesen sie die antworten

#1 Gunter Avenius
21/10/2008 - 20:15 | Warnen spam
Hallo Joerg M.,

Joerg M. schrieb folgendes:
Access 2003 und Outlook 2003



...
Sorry, ich weiß nicht, was ich noch probieren soll (mit der EVAL von DONKARL
hab ich es auch schon versucht).



.txtAz)='" & cmbAz & "'));"

Vor und nach dem Anführungszeichen einen Fliegendreck ( ' ) einfügen.

Zusatz: Weiß jemand, wie ich die gebundene Spalte festlege, wenn es mal
nicht die Spalte 1 (column(0)) sein soll?



column(1) ?

Gruß
Gunter
__________________________________________________________
Access FAQ: http://www.donkarl.com
11. Access-Entwickler-Konferenz http://donkarl.com/?AEK
Nürnberg, 18./19.10. + 25./26.10.2008

home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de

Ähnliche fragen