Hallo liebe Forummitglieder,
ich habe mal wieder ein kleines Problem. Ich hoffe es gibt da eine schnelle unkomplizierte Lösung.
Ich habe in einem Formular "Start" einen Button, der bei Click eine Inputbox öffnen soll. Dort soll dann ein Suchbegriff (z.B. ER123) eingegeben werden. Dann soll ein anderes Formular "Wareneingang" aufgerufen werden und der Datensatz geöffnet werden, wo in dem Textfeld "ERNr" der Suchbegriff steht.
Also eine Inputbox und den Inhalt auf einen Speicherplatz verweisen ist kein Problem. :D
Ich bräuchte nur den Befehl, der das neue Formular öffnet und den Suchbegriff (auf dem Speicherplatz) mit der Textbox vergleicht.
P.S. Habe unter diesem Link schon einen Ansatz gefunden...
http://www.access-o-mania.de/index.php?ind=tipps&op=entry_view&iden=80
allerdings krieg ichs nicht so ganz auf mein Problem umgemünzt.
DANKE für Eure Hilfe!!
Grüße
Simon
Hallo,
DoCmd.Close acForm, "Startseite" ---> schließt die Startformular
DoCmd.OpenForm "Wareneingang" ---> öffnet neues Formular "Wareneingang"
Vermutlich wird ja deine InputBox so aussehen...
strWert = InputBox("what you want to search:")
Und der Vergleich sollte -vorrausgesetzt ich habs richtig verstanden- so funktionieren
If strWert = Me.textfeld1.value Then
MsgBox ("Wert gefunden")
Else
MsgBox("Wert nicht gefunden")
End If
Mfg Kladdi
OK...
also hier der Code:
Private Sub Befehl4_Click()
Dim search As String
search = InputBox("Bitte geben Sie die Nummer der Eingangsrechnung ein." & Chr(13) & "Form: ER###", "ER-Nr. eingeben")
DoCmd.OpenForm "Wareneingang"
End Sub
jetzt soll der wert, der unter search gespeichert ist,
mit dem textfeld, welches ERNr heißt, verglichen werden
und es soll der datensatz angezeigt werden, wo dies übereinstimmt
wenn ich deinen Code einfüge:
If search = Me.ERNr.Value Then
MsgBox ("Wert gefunden")
Else
MsgBox ("Wert nicht gefunden")
End If
Kommt "Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden" und er markiert mir .ERNr.
das Textfeld und Steuerelement heißen aber so.. also ERNr
P.S. das Startformular soll nicht geschlossen werden...
Hast du noch eine Idee??
Vielen Dank
Grüße
Simon
Ich habs hinbekommen!!!
der Code ist:
Dim strWert As String
strWert = InputBox("Bitte geben Sie die Nummer der Eingangsrechnung ein." & Chr(13) & "Form: ER###", "ER-Nr. eingeben")
DoCmd.OpenForm "Wareneingang"
If strWert <> "" Then
Me.Filter = "ERNr = '" & strWert & "'"
Me.FilterOn = True
Else
MsgBox "Keine Eingabe"
End If
End Sub
Vielen Dank für deine Hilfe!!
Grüße
Simon
Ok, hab mich geirrt...
er öffnet mir das Formular, aber nicht den Datensatz den ich in der Suche eingeben habe
:-\ :-\ :-\ :-\ *frust*
Hallo,
auf welchem Formular befindet sich das Feld?
mit ... Me.Filter = "ERNr='" & strWert & "'"
... beziehst du dich auf das aktuelle Formular - also jenes von dem du aus das Formular Wareneingang aufrufst.
Öffne doch das Form und gib dem die WHERE-Klausel mit
If strWert <> "" Then
DoCmd.OpenForm "Wareneingang",,,"ERNr='" & strWert & "'"
Else
MsgBox "Keine Eingabe"
End If
Gut, mit der Suche funktioniert das soweit SUPER.. vielen Dank!
Ein Problem ist noch,
wenn er die Eingabe nicht findet, soll er die unten angebene Message Box öffnen und das Formular Wareneingang schließen...
Hier der Code:
Dim strWert As String
strWert = InputBox("Bitte geben Sie die Nummer der Eingangsrechnung ein." & Chr(13) & "Form: ER###", "ER-Nr. eingeben")
If strWert <> "" Then
DoCmd.OpenForm "Wareneingang", , , "ERNr = '" & strWert & "'"
Else
MsgBox "Rechnung nicht gefunden oder keine Eingabe."
' DoCmd.Close acForm, "Warenausgang"
End If
DANKE!!
Grüße
Simon
naja, da gäbe es ntürlich schon noch andere Möglichkeiten...
du könntest ja an Hand des eingegebenen Suchbegriffs die entsprechende Tabelle 'befragen' ob es diese Nummer überhaupt gibt und nur dann das Form öffnen, wenn die Antwort JA lautet.
Frag doch einmal die Tabelle ab...
Dim x as long
x = NZ(DLookup("*","DeineTabelle","ERNr='" & strWert & "'"),0)
If strWert <> "" Then
If x > 0 then
DoCmd.OpenForm "Wareneingang",,,"ERNr='" & strWert & "'"
Else
MsgBox "Rechnung nicht gefunden oder keine Eingabe."
End If
Else
MsgBox "Keine Eingabe"
End If
habe warenausgang mal in wareneingang geändert... nüschts
er öffnet mir einen neuen datensatz, wenn er den suchbegriff nicht findet..
liegt, denke ich, daran, dass entweder docmd.openform befehl kommt (if else function)
ODER DoCmd.Close acForm, "Wareneingang" <--- hier ist ja das Formular noch nicht geöffnet
hmm...
Hi,
sieh mal oben, ich habe den Code geändert und eine Alternative vorgeschlagen.
er kommt mit deinem "*" in dlookup nicht klar, laufzeitfehler 3075: syntaxfehler (fehlender operator) in abfrageausdruck '*'
hmm :-/
Uuuuupppps... SORRY...
x = NZ(DCount("*","DeineTabelle","ERNr='" & strWert & "'"),0)
bitte diese Zeile ändern!
SUPER !!!!!!!!! ;D ;D ;D ;D ;D ;D
Funktioniert wie geschmiert... VIELEN VIELEN DANK!!!!
Und ein entspannendes Wochenende... :)
Grüße
Simon