VBA-Abfrageergebnis auswerten

Hallo,

Anfänger braucht Hilfe. Normalerweise behelfe ich mir mit der Online-Hilfe, kopiere die Beispiele raus und biege die entsprechend meinen Erfordernissen, aber im Augenblick komme ich nicht mehr weiter.

(Habe die englische Version, daher leider nur die entsprechenden Begriffe)

Formular Form1 enthält ein unabhängiges Dropdown-Feld Combo15, in dem ein Name ausgewählt und der verbundene Integer-Wert abgespeichert wird. Nach Aktualisierung dieses Feldes möchte ich über VBA die Abfrage PosName1 starten (in der schon der Verweis auf Combo15 enthalten ist), die je nach ausgewähltem Wert in Combo15 einen oder mehrere Werte zurück gibt. Die Ausgabewerte sollen in der Variablen Name mit „image“ verknüpft werden und das Element mit dem dadurch gewonnenen Namen (bsp. „[image12]“) wird auf „visible“ gestellt.

>>
Private Sub Combo15_AfterUpdate()
Dim dbs As Database, rst As Recordset
Dim Feld As Field
Dim Name as String

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(„SELECT PosName1.PosMap, PosName1.PosNo FROM PosName1;“)
For Each Feld In rst.Fields
Name = „image“ & Feld.PosNo.Value
Controls(Name).Visible = True
Next Feld
rst.MoveLast
dbs.Close
End Sub

Hallo,

versuchs mal mit

Set rst = dbs.OpenRecordset(„SELECT PosName1.PosMap, PosName1.PosNo FROM PosName1;“, dbOpenDynaset)

Ulrich

Hallo Ulrich,

habe ich versucht, Ergebnis:

Run-time error ‚3061‘:
Too few parameters. Expected 1.
[Debug] [End] [Help]

Gruß
Jürgen

Set rst = dbs.OpenRecordset(„SELECT PosName1.PosMap,
PosName1.PosNo FROM PosName1;“, dbOpenDynaset)

Hallo,

kannst Du mal den SQL-Text der Abfrage posten.

(Abfrage öffnen, oben links Entwurfsansicht, Datenblattansicht, SQL)

Ulrich

Hallo Ulrich,

kannst Du mal den SQL-Text der Abfrage posten.

die Abfrage hatte ich extra erstellt, weil ich die Verbindung zwischen Combo15 und der Ursprungsabfrage PosName nicht hinbekommen habe … :

SELECT PosName.[MA-Nr], PosName.Name, PosName.PosMap, PosName.PosNo
FROM PosName
WHERE (((PosName.[MA-Nr])=[forms]![form1]![combo15]));

Eigentlich brauche ich aus PosName nur die Datensätze, wo Combo15 der PosName.[MA-Nr] entspricht. [Und bei der nächsten Datenbank werde ich dann vielleicht zur Abwechslung mal vernünftige Namen vergeben, ohne irgendwelche Zeichen und nicht so lang]

Danke & Gruß
Jürgen

Hallo,

ich bin noch nicht dahintergekommen, wo der Fehler herkommt. Aber hier noch eine Idee: Öffne doch die Abfrage (oder Tabelle) als Recordset, also ohne Kriterien.
Schreib das Kriterium (Where-Klausel ohne Where und Semikolon) in eine Stringvariable
stKriterium = "MA-Nr = " & Me![Combodingsbums]
(MA-Nr ist doch eine Zahl?)

Dann suchst Du den ersten Datensatz, auf den das Kriterium zutrifft mit
rst.FindFirst stKriterien
Weiter kannst Du mit
rst.FindNext stKriterien
durchblättern.
Hilft das weiter?

Ulrich

Ach so, und nenne kein Feld „Name“, weil, das ist in Access ein geschützter Begriff. Macht früher oder später Schwierigkeiten.

Ulrich

Hallo Ulrich,

Super, damit geht’s !!

Vielen herzlichen Dank für Deine Hilfe !

Gruß
Jürgen