Hallo zusammen,
nach stundenlangen ausprobieren, testen sämtlicher Ansätze aus dem Netz, ändern dieser, etc. wende ich mich jetzt doch direkt mit meinem Problem an die Profis hier.
Beim Klick in das Feld ID_feld meines Formulars FOR_create_x soll sich eine InputBox öffnen, in das eine ID eingegeben werden kann, nach der dann gesucht wird und im Formular auf diesen Datensatz gesprungen wird.
Das ganze klappt auch soweit, solange ich das Formular direkt öffne.
Problem: Sobald ich das Formular in meinem Navigationsformular (Home_amx_FE1) öffne, kommt es zum Fehler.
Ich habe dann schonmal die beiden (wieder auskommentierten) .SetFocus-Zeilen eingefügt, leider ohne Erfolg
Nachfolgender Code steht im Modul
Function search_ID()
On Error GoTo search_ID_Err
Dim Var8 As Integer
Var8 = InputBox("gesuchte ID eingeben", "ID-Suche_amx")
'Forms!Home_amx_FE1!Navigationsunterformular.SetFocus
'Forms!Home_amx_FE1!Navigationsunterformular.Form!ID_feld.SetFocus
DoCmd.SearchForRecord acForm, "FOR_create_x", acFirst, _
"[TAB_x].[ID_feld] =" & Var8
search_ID_Exit:
Exit Function
search_ID_Err:
MsgBox "Es wurde nach keiner ID gesucht. Bitte erneut in das ID-Feld klicken, ID eingeben und mit OK bestätigen", 48, "Foul_amx"
Resume search_ID_Exit
End Function
Im Formular "FOR_create_x" rufe ich dann die oben eingefügte Funktion auf:
Private Sub ID_feld_click()
Call search_ID
End Sub
Falls es Fragen gibt, ich die Hälfte an Infos drumherum vergessen habe, o.ä. bitte kurze Info. ;)
Herzlichen Dank im Voraus für Eure Bemühungen!
Ein etwas anderer Ansatz.Private Sub search_ID()
Dim Var8 As String
Dim Criteria As String
On Error GoTo search_ID_Err
'Das ist keine intuitive Bedienung!!!
Var8 = InputBox("gesuchte ID eingeben", "ID-Suche_amx")
'Eingabe prüfen
If IsNumeric(Var8) Then
'Suchkriterium anlegen
Criteria = BuildCriteria("ID_feld", dbLong, Var8)
'im geklonten Recordset
With Me.Recordset.Clone()
'nach dem Kriterium suchen
.FindFirst Criteria
'Ergebnis prüfen
If .NoMatch Then
MsgBox "ID nicht gefunden."
Else
'Anzeige im Erfolgsfall synchronisieren
Me.Bookmark = .Bookmark
End If
End With
Else
MsgBox "Abbruch, leere oder ungültige Eingabe."
End If
search_ID_Exit:
Exit Sub
search_ID_Err:
'diese Aussage muss nicht zutreffen
MsgBox "Es wurde nach keiner ID gesucht. Bitte erneut in das ID-Feld " & _
"klicken, ID eingeben und mit OK bestätigen", vbExclamation, "Foul_amx"
Resume search_ID_Exit
End Sub
Hallo Alex,
Zitat 'Das ist keine intuitive Bedienung!!!
Var8 = InputBox("gesuchte ID eingeben", "ID-Suche_amx")
Dem kann ich nur zustimmen. Warum nimmst du nicht einfach ein
ungebundenes Textfeld direkt auf dem Formular?
Und wenn euer Sortiment nicht 10Tsde von Artikeln enthält vielleicht
sogar ein Kombi mit den Artikel-IDs. Das liesse sich auch noch mit
einem vorgeschaltetem Kombi (Waren-/Artikelgruppe) einschränken
(filtern).
gruss ekkehard
Hi ihr beiden,
vielen Dank für des Rätsels doch so einfache Lösung. Funktioniert perfekt!
In dem Fall ist ein ungebundenes Textfeld aufgrund der "usabililty" leider nicht möglich. Hinweistext kann man sicher noch besser formulieren. Aber sonst, klar. An ähnlichen anderen Stellen habe ich bereits mit ungebundenen Textfeldern gearbeitet.
Kombi ist an der Stelle aufgrund des Umfangs nicht denkbar.
Besten Dank nochmal und Gruß!
Alex