Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Outliener am Mai 04, 2013, 08:40:05

Titel: gefilterte Abfrage öffnen über Button
Beitrag von: Outliener am Mai 04, 2013, 08:40:05
Hallo zusammen

Ich habe folgendes Problem:

Ich möchte in einem Formular einen Name aus einer Kontakte Tabelle suchen (mit Suchfeld und "Suchbutton). Das klappt soweit....
Diesem Kontakt ist dann jedoch eine Kundennummer definiert. In einer anderen Tabelle sind eben ausschließlich diesen Kundennummern erneut diverse Informationen zugeordnet.

Ich möchte nun also einen Button erstellen, der mir eine Tabelle (Popup) eben gefiltert für genau dies, dem Namen zugeordnete Kundennummer, öffnet.

Ich kenn mich mit Access nicht wirklich gut aus muss aber sagen, das mich dieses Forum auch in der Vergangenheit schon sehr weit gebracht hat.
Würd mich über Eure Hilfe freuen.


Beste Grüße

Florian
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: database am Mai 04, 2013, 09:40:45
Hallo,

ich gehe davon aus, dass die Tabellenstruktur einer normalisierten relationalen DB entspricht.

Nehmen wir an, das Formular enthält ein Feld z.B. 'KdNr' welches nach der von dir beschriebenen Kontaktsuche die zugeordnete Kundennummer enthält.

Dann erstellst du dir eine Abfrage 'qryKundendaten' und fügst dieser alle gewünschten Felder deiner Tabelle hinzu und speicherst diese Abfrage.
Im Abfrageentwurf wechselst du dann in die SQL-Ansicht und kopierst den SQL-String OHNE das Semikolon am Schluss.
Am Formular erstellst du dir den Button und in dessen Klickereignis schreibst du folgende Zeilen:


Private Sub DeinButton_Click()

Dim lngKdNr As Long
Dim strSQL As String

lngKdNr = Me.DeinFeldKdNr
strSQL = "Der kopierte SQLString"

CurrentDB.Querydefs("qryKundendaten").SQL = strSQL & " WHERE Kdnr=" & lngKdNr

DoCmd.OpenQuery "qryKundendaten"

End Sub


Ein Klick auf den Button sollte dann die Abfrage 'qryKundendaten' öffnen und darin die gewünschten Daten anzeigen.
Beachte bitte, dass das nur eine von mehreren Möglichkeiten ist, die du für die Anzeige der Daten verwenden kannst
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: Outliener am Mai 04, 2013, 11:51:52
Der Filter funktioniert leider noch nicht :(

Hast Du da ne Idee???
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: database am Mai 04, 2013, 12:37:19
Naja, lt. Aussage meiner Kristallkugel kann das mehrere Gründe haben  ::)

Wie sieht den der SQL-String der Abfrage NACH der ersten Ausführung des Buttonklick aus - schau mal in den Abfrageentwurf.

Steht da in der Where-Klausel eine oder die richtige Kundennummer?

Stimmen die Namen der Formular- und Tabellenfelder im Code mit den realen Gegebenheiten überein?
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: Outliener am Mai 04, 2013, 12:40:46
Ich hab mal noch was anderes versucht....
hier mein aktueller Code:

Private Sub Befehl27_Click()
Dim lngKdNr As Long
Dim strSQL As String

lngKdNr = Me.Kunden_ID
' strSQL = "Drogenkontrollen.[Kontrolle_Nr], Drogenkontrollen.[Kontrolle_Patientennummer], Drogenkontrollen.[Einbestellt_Kontrolle], Drogenkontrollen.[Datum_Kontrolle], Drogenkontrollen.[Kreatinin_Kontrolle], Drogenkontrollen.[EtG_Kontrolle], Drogenkontrollen.[Drogen_Kontrolle], Drogenkontrollen.[CDT_Kontrolle], Drogenkontrollen.[Sonstiges_Kontrolle], Drogenkontrollen.[Hinweis_kontrolle], Drogenkontrollen.[Kontrolle_Labor_Nr]FROM Drogenkontrollen"

'CurrentDb.QueryDefs("AbfKontrolle").SQL = strSQL & " WHERE Kontrolle_Patientennummer =" & lngKdNr

DoCmd.OpenQuery "AbfKontrolle"
Me.Filter = "[Kontrolle_Patientennummer] = '" & lngKdNr
    Me.FilterOn = True
    If Me.RecordsetClone.RecordCount = 0 Then
     Me.FilterOn = False
   
    End If

End Sub

Wobei die KdNR zuordnung schon richtig erfolgt.

Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: database am Mai 04, 2013, 15:57:37
Hallo,

OK, du hast so ein ungekürztes Abfrageergebnis das du dann auf eine bestimmte Kundennummer filterst.
nur ...

Me.Filter = "[Kontrolle_Patientennummer] = '" & lngKdNr

... ist hier ein Hochkomma zuviel!
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: Outliener am Mai 04, 2013, 16:33:37
Es klappt aber leider immer noch nicht...

Tut mir Leid.... Ich hoffe ich stelle mich nicht zu blöd an...

Hast Du evtl. noch mal nen Tipp? oder ggf. auch ne kleine Beispieldatenbank....

Das Problem ist ja klar denk ich

Noch kurz ergänzt... Jetzt gibts zwar keinen Fehler mehr aber leider auch nicht die gewünschte Sortierung
Titel: Re: gefilterte Abfrage öffnen über Button
Beitrag von: database am Mai 04, 2013, 22:22:15
Hallo,

such dir eine Kundennummer aus, die im Formular angezeigt wird.
Dann füge im Abfrageentwurf folgenden String in die SQL-Ansicht deiner Abfrage ein:

SELECT [Kontrolle_Nr], [Kontrolle_Patientennummer], [Einbestellt_Kontrolle], [Datum_Kontrolle],
           [Kreatinin_Kontrolle], [EtG_Kontrolle], [Drogen_Kontrolle], [CDT_Kontrolle],
           [Sonstiges_Kontrolle], [Hinweis_kontrolle], [Kontrolle_Labor_Nr]
FROM Drogenkontrollen WHERE [Kontrolle_Patientennummer]=xxx

An Stelle der x fügst du die ausgelesene Kundennummer ein.
Führe nun die Abfrage ganz normal aus - werden jetzt die gewünschten Daten angezeigt?

Auch noch eine Ergänzung ... bitte welche Sortierung? Von sortieren war bisher nicht die Rede!

Zum allgemeinen Verständnis: Auswahl, Filter und Sortierung sind 3 Sorten Obst!