PDA

Vollständige Version anzeigen : Suchen Funktion


IcmsJena
10.05.2004, 07:06
Einen schönen guten Morgen wünsch ich!

Hab da ein kleines Problem mit einer Suchen-Funktion. Das liegt nicht direkt bei der Suche, sondern eher an der auswahl der Kombibox Funktion.

Es soll so funktionieren:
In dem Formular sind zwei Kombiboxen. Eines für Projektnummer suchen (contrProj) und ein anderes für Auktionsnummer suchen (contrAukt). Diese beiden sind in einem Rahmen (RaSuche) verbunden.
Jetzt soll in einem Suchfeld (txtProjsuch) ein genannter Wert gefunden werden (unter angabe des Kombifeldes und klick auf einem Suchen Button (btnProjsuch)).

Folgender Code wird verwendet:
Private Sub btnProjsuch_Click()
On Error GoTo Err_Suchen

If "contrProj" = True Then
If IsNull(txtProjsuch) = True Then 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
MsgBox "Bitte wählen Sie eine Projektnummer aus. Ohne Nummer kein Ergebnis!", vbInformation, "Bitte Suchtext eingeben"
Else
DoCmd.GoToControl "txtid" 'Textfeld oder Kimbifeld angeben, in dem die Daten stehen
DoCmd.FindRecord findwhat:=txtProjsuch & "*" 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
DoCmd.GoToControl "txtAuktSuch"
End If
Else
If "contrAukt" = True Then
If IsNull(txtProjsuch) = True Then 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
MsgBox "Bitte wählen Sie eine Artikelbezeichnung aus. Ohne Bezeichnung kein Ergebnis!", vbInformation, "Bitte Suchtext eingeben"
Else
DoCmd.GoToControl "txtAuktionsArtikelNr" 'Textfeld oder Kimbifeld angeben, in dem die Daten stehen
DoCmd.FindRecord findwhat:=txtProjsuch & "*" 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
End If
Else
MsgBox "Bitte wählen Sie eine Suchart aus. Klicken Sie dazu in das Kästchen hinter den genannten Suchfunktionen.", vbInformation, "Suchfunktion nicht gewählt"
End If

End If

Err_Suchen:
MsgBox Err.Description + " Fehlernummer: " & Err.Number

End Sub

Sieht hier irgendjemand einen Fehler? Egal wie ich es drehe, ich komme zu keiner vernünftigen Lösung.. :bawling:

J_Eilers
10.05.2004, 07:22
Hi,

wie soll ein String wahr sein? Was ist "contrProj" oder "constrAukt"? Stimmen die FindRecords so?

Private Sub btnProjsuch_Click()
On Error GoTo Err_Suchen

If "contrProj" = True Then
If IsNull(txtProjsuch) Then 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
MsgBox "Bitte wählen Sie eine Projektnummer aus. Ohne Nummer kein Ergebnis!", _
vbInformation, "Bitte Suchtext eingeben"
Else
DoCmd.GoToControl "txtid" 'Textfeld oder Kombifeld angeben, in dem die Daten stehen
DoCmd.FindRecord findwhat:=txtProjsuch & "*" 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
DoCmd.GoToControl "txtAuktSuch"
End If
ElseIf "contrAukt" = True Then
If IsNull(txtProjsuch) = True Then 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
MsgBox "Bitte wählen Sie eine Artikelbezeichnung aus. Ohne Bezeichnung kein Ergebnis!", _
vbInformation, "Bitte Suchtext eingeben"
Else
DoCmd.GoToControl "txtAuktionsArtikelNr" 'Textfeld oder Kimbifeld angeben, in dem die Daten stehen
DoCmd.FindRecord findwhat:=txtProjsuch & "*" 'Textfeld oder Kombifeld angeben, aus den Gesucht wird
End If
Else
MsgBox "Bitte wählen Sie eine Suchart aus. Klicken Sie dazu in das Kästchen hinter den genannten Suchfunktionen.", _
vbInformation, "Suchfunktion nicht gewählt"
End If

Err_Suchen:
MsgBox Err.Description + " Fehlernummer: " & Err.Number

End Sub

IcmsJena
10.05.2004, 07:24
Hmm..

Hatte auch erst eine 1 statt den true stehen, hat aber auch nicht funktioniert.

Die findRecords dürften stimmen.

J_Eilers
10.05.2004, 07:25
Und nochmal die Frage:

Was ist "contrProj" oder "constrAukt"?

IcmsJena
10.05.2004, 07:33
ehrlich gesagt, hab ich keine Ahnung. :rolleyes:

Ich weiß nicht wie ich die Kontrollkästchen über einen Code ausfindig machen kann, wenn diese extra noch in einem Rahmen sind..

Probiert hab ich es auf mehreren Wegen, d.h. Me!contrProj, frmProjStam!RaSuche!contrProj. Hat alles nicht funktioniert.

J_Eilers
10.05.2004, 07:35
Ist der Rahmens vielleicht eine Optionsgruppe? Dann musst du dich auf den Rückgabewert dessen beziehen. Dieser kann eine Zahl oder ein String sein. Je nachdem, was du bei der Erstellung ausgewählt hast.

Me!OptionsGruppe

Mache mal einen Rechtsklick auf den Rahmen und lasse dir die Eigenschaften anzeigen. Schaue mal, ob es dort das Ereignis nach Aktualisierung gibt.

IcmsJena
10.05.2004, 07:44
Der Rahmen ist eine Optionsgruppe. Sorry, hätte ich früher sagen sollen.

Wie beziehe ich mich auf die Rückgabewerte der Kontrollkästchen der Optionsgruppe?

J_Eilers
10.05.2004, 07:48
Wie bei jedem anderen Steuerelement auch Me!DeineOptionsGruppe. Um zu sehen, was der Rückgabewert ist kannst du ja nach Aktualisierung einfach folgendes verwenden:

MsgBox Me!OptionsGruppe

IcmsJena
10.05.2004, 08:16
Danke!!!

Ist genau das, was ich brauchte! :biggrinl: