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
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]
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?