Access Suchmaske filtert leere Spalten

  • Themenstarter Themenstarter artinfo
  • Beginndatum Beginndatum
Hi Thorben,

also die "zeitlager.mdb" kann ich leider nicht öffnen. Liegt vermutlich daran das ich hier noch mit Access 2000 arbeite und du schon eine neuere Version hast, die "kolping.mdb" dagegen lässt sich öffnen.

Habe hier ein Formular mit 3 ungebundenen Textfeldern und einem Button erstellt. In der Click-Prozedur des Buttons kommt folgender Code:

Code:
Private Sub cbSuchen_Click()
Dim sql$
Dim und$

If Trim(txtVorname) = "" And Trim(txtNachname) = "" And Trim(txtGruppe) = "" Then
    MsgBox "Ohne Angaben ist keine Suche möglich.", vbOKOnly, "Suche"
End If

sql$ = "SELECT * FROM KFH_3_94 WHERE "

If Trim(txtNachname) <> "" Then
    sql$ = sql$ & "Nachname = " & txtNachname
    und$ = " AND "
End If

If Trim(txtVorname) <> "" Then
    sql$ = sql$ & und$ & "Vorname = " & txtVorname
    und$ = " AND "
End If

If Trim(txtGruppe) <> "" Then
    sql$ = sql$ & und$ & "Gruppe = " & txtGruppe
End If

End Sub

Je nachdem in welchen Feldern ein Wert erfast wurde, wir die entsprechende SQL-Anweisung erstellt. Das solltest du so auf deine Datenbank ohne Probleme übertragen können!!?

Gruß Thomas
 
Hallo Thomas,
danke für die schnelle Hilfe. Leider konnte dein VBA-Code keine Abhilfe schaffen. Habe den VBA-Code bei mir eingefügt, leider ohne Erfolg.
Auch die nötige Anpassung an die Datenbank Zeltlager brachte keinen Erfolg.

Ich habe die beiden Datenbanken noch einmal hoch geladen, jedoch als 2000er-Version.
Wäre dir sehr dankbar, wenn du noch einmal drüber schauen kannst. (Dein VBA-Code ist noch nicht eingefügt)

Beste Grüße und Vielen Dank
Thorben
 

Anhänge

Hi Thorben,

habe mal ein bisschen was an deiner Datenbank verändert.
Wenn jetzt im Formular bzw. in den entsprechenden Suchfeldern etwas eingegeben und anschließend auf den Suchen Button geklickt wird, dann werden im Formular auch die entsprechenden Datensätze angezeigt.

Da die Tabelle KFH_3_94 eine verknüpfte Tabelle ist, habe ich hierfür eine neue Verknüpfung erstellt. Sonst hätte ich das Formular nicht öffnen können. Musst du bei dir dann wieder ändern!!

Schau es dir einfach an ob du damit klar kommst.

Gruß Thomas
 

Anhänge

Hallo Thomas,
danke für die Hilfe.
Ich habe versucht die VBA-Anweisung zu verstehen. Ich würde mich hier jedoch als Anfänger deklarieren, der schon mal ein wenig mit VBA programmiert hat.

Gibt die Anweisung "Me.RecordSource = sql$" die gefundenen Datensätze in die entsprechenden Textfelder (Vorname, Nachname, Gruppe) zurück?
Bei der Betätigung des Suchbuttons scheint es mir so, als würde in dem Textfeld Nachname ein Listenfeld entstehen, bzw. eine Textbox mit Scrollbalken.

Mir gefällt dein Vorschlag sehr gut.

Gibt es eine Möglichkeit die gefundenen Datensätze in dem Listenfeld anzuzeigen und dann darüber einer nähere Auswahl zu treffen?
Die Anzahl der Datensätze stimmt immer im unteren Bereich, z.B. 1 von 2 oder 1 von 4 je nach Suchkriterium.

Danke schon mal.

Beste Grüße

Thorben
 
Hi Thorben,

also habe es jetzt so geändert das beim Suchen die Treffer zunächst in das Listenfeld eingetragen werden. Klickt man dann auf einen Eintrag in der Liste, wird dieser Datensatz unten angezeigt.

Den Code von dir habe ich mal noch stehen lassen, jedoch alles auskommentiert. Denke mal du wirst ihn so nicht mehr brauchen!

Gruß Thomas

Ach übrigens:
Gibt die Anweisung "Me.RecordSource = sql$" die gefundenen Datensätze in die entsprechenden Textfelder (Vorname, Nachname, Gruppe) zurück?
Ja, damit werden die Datensätze zurückgegeben!
 

Anhänge

Hallo Thomas,
Super, das ist genau das, was ich mir von der Suchfunktion vorgestellt habe. Funktioniert.

Ich habe nur im Moment den Eindruck, ein Problem mit deiner Hilfe zu lösen und 2 neue kommen für mich als Anfänger hinzu. :)
Hoffe, dass ich das irgendwann selber hinbekomme.
Kannst du mir noch einmal helfen?

Die Suchfunktion und das Listenfeld funktionieren jetzt ja einwandfrei. Leider funktionieren Checkboxen im unteren Bereich nicht mehr. Die Checkboxen sind ja aus der anderen Tabelle.

Im Moment kann ich diese nicht mehr anklicken. Diese Datensätze kann ich auch als Feldlisten-Feld hinzufügen. ALs würde die Beziehung zur zeltlager-Tabelle fehlen.

Habe schon versucht die sql-Anweisung in dem Bereich lis_ergebnis zu ändern und hier die andere Tabelle mit einem Left Join zu verknüpfen, leider vergebens.

Weißt du hier auch noch einen Rat?

Beste Grüße
Thorben
 
Hi Thorben,

sorry hat etwas länger gedauert. Bin dieses WE am einem Rechner mit Office 2007 und da musste ich mich erst mal zurechtifnden.

Code:
Private Sub lis_ergebnis_Click()
Dim sql$

sql$ = "SELECT * FROM KFH_3_94 LEFT JOIN zeltlager2010 ON KFH_3_94.Key = zeltlager2010.Key WHERE KFH_3_94.Key = " & lis_ergebnis.Column(0)
Me.RecordSource = sql$

End Sub

Wenn du die Abfrage in der onClick Prozedur der Liste wie oben änderst, müsste das gewünschte Ergebnis herauskommen.

Gruß Thomas
 
Hallo Thomas,
danke für die Hilfe.
War die Woche viel unterwegs, deshalb melde ich mich erst jetzt.
Jetzt funktioniert alles so, wie ich es haben wollte.
Besten Dank und beste Grüße
Thorben

P.S.: Office 2007 ist sehr gewöhnungsbedürtig :-)
 
Zurück