Access 2007 Abfrage Formular

Hallo,

ich bin neu hier und versuche mal so gut ich kann mein Problem zu schildern.
Alsooo: Ich habe eine Datenbank und dazu Abfragen erstellt z.B. zeit/monat die ein Arzt beim Patienten verbringt, dass klappt auch schon ganz gut. Nun würde ich gern dazu ein Formular erstellen bei dem der Benutzer das Datum von/bis eintragen kann, den Patienten und den entsprechenden Arzt, habe ich das gewählt würde ich gern das er mir die Gesamtzeit berechnet. Ich weiß nicht ob sowas mit Access möglich ist und würde mich über eure Hilfe sehr freuen. Danke schon mal im Voraus.

LG

Hallo,

ich bin neu hier und versuche mal so gut ich kann mein Problem
zu schildern.
Alsooo: Ich habe eine Datenbank und dazu Abfragen erstellt
z.B. zeit/monat die ein Arzt beim Patienten verbringt, dass
klappt auch schon ganz gut. Nun würde ich gern dazu ein
Formular erstellen bei dem der Benutzer das Datum von/bis
eintragen kann, den Patienten und den entsprechenden Arzt,
habe ich das gewählt würde ich gern das er mir die Gesamtzeit
berechnet. Ich weiß nicht ob sowas mit Access möglich ist

Klar geht sowas in Access. In Ermangelung der Kenntnis über deine genauen Tabellen- und Feldnamen nur ein Lösungsweg-Vorschlag:

In einem an die Tabelle gebundenen Formular werden im FormularKopf 2 ungebundene Textfelder für die Datumseingaben und je ein ungebundenes Kombifeld für den Patienten und den Arzt eingebaut.

Zusätzlich kommt eine Schaltfläche (btnSuchen) dazu.

In der Klick-Ereignisprozedur der Schaltfläche wird ein SQL-String (Abfrage) zusammengebaut, der ein Kriterium (Where-Condition) aus den in die o. g. Felder eingegebenen Werten verpasst bekommt. Der SQL-String wird der Recordsource-Eiegneschaft des Form zugewiesen.

Alternativ zum SQL-String kann man auch die FILTER-Eigenschaft des Forms mit dem Kriterium (Where-Codition) belegen und die Filterung durchführen

Gruß
Franz, DF6GL

Danke für die Antwort…also ich habe jetzt ein neues Formular erstellt und in der Datenherkunkt die entsprechende Tabelle eingetragen. Meine Abfrage (in SQL) wie ich es bisher gemacht habe sieht so aus:

SELECT Sum(Zeit) AS Gesamtzeit
FROM 05\_Leistung
WHERE ((([05\_Leistung].Pat\_ID)="01/2013") And (([05\_Leistung].Behandler)="Buchhold") And (([05\_Leistung].Erstkontakt) Between #1/5/2012# And #9/30/2012#));

Wie würde denn beispielsweise die Ereignisprozedur aussehen? :confused: Ich bin wirklich nicht so erfahren mit Access. :frowning:

Ich bin für jede Hilfe sehr sehr dankbar…

LG

Hallo,

Danke für die Antwort…also ich habe jetzt ein neues Formular
erstellt und in der Datenherkunkt die entsprechende Tabelle
eingetragen. Meine Abfrage (in SQL) wie ich es bisher gemacht
habe sieht so aus:

SELECT Sum(Zeit) AS Gesamtzeit
FROM 05_Leistung
WHERE ((([05_Leistung].Pat_ID)=„01/2013“) And
(([05_Leistung].Behandler)=„Buchhold“) And
(([05_Leistung].Erstkontakt) Between #1/5/2012# And
#9/30/2012#));

Wie würde denn beispielsweise die Ereignisprozedur aussehen?

Mhmm, befürchte da noch viel Krachen im Gebälk…

Wenn in der Tabelle die Namen der Behandler drinstehen und nicht der ID-Wert (aus einer anderen Tabelle „tblBehandler“), dürfte insgesamt die Narmalisierung der Tabelle(n) , die für eine Datenbank ESSENTIELL ist, auf der Strecke geblieben sein…

Wie auch immer, versuch Folgendes:

Zwei Textfelder für die Datumswerte („txtDatumVon“, „txtDatumBis“),
ein Listenfeld („lstSummeZeit“) für die Anzeige der summierten Zeit(Wie soll das eigentlich angezeigt werden??)

ein Kombifeld für die Auswahl des Behandler-(Nach-)Namens („cmbBehandler“) mit den Eigenschaften:

Datensatzherkunft: Select Behandler from 05_Leistung order by Behandler
Gebundenen Spalte: 1
Spaltenanzahl: 1
Spaltenbreiten: 4cm

ein Kombifeld für die Auswahl der Pat_ID („cmbPatID“) mit den Eigenschaften:
Datensatzherkunft: Select Pat_ID from 05_Leistung order by Pat_ID

Gebundenen Spalte: 1
Spaltenanzahl: 1
Spaltenbreiten: 2cm

und als Ereignisprozedur für das Kombifeld-Nach-Aktualisierugs-Ereignis:

Sub cmbBehandler_Afterupdate()
Me!lstSummeZeit.Rowsource= „SELECT Sum([Zeit]) AS Gesamtzeit FROM 05_Leistung WHERE 05_Leistung.Pat_ID=’“ & cmbPATID & „’ And Behandler=’“ & cmbBehandler & „’ And Erstkontakt Between " & Format(txtDatumVon,“#yyyy-mm-dd#") & " And " & Format(txtDatumBis,"#yyyy-mm-dd#")
End Sub

Gruß
Franz, DF6GL

Hallo,
danke für die Antwort, ich werde es sobald wie möglich probieren. Muss die Datenbank jetzt umstellen für die Benutzerin, sie hatte paar Änderungen.

LG

Hallo…sorry das es bisschen gedauert hat, aber ich habe alles so gemacht wie gesagt und soweit geht es auch, also schon mal ein großes Dankeschön :smiley: Das Problem ist nur das er mir in dem Kombinationsfeld Behandler x-mal den Behander xy anzeigt, bekommt man das auch irgendwie hin das er nur einen anzeigt, ich glaube das es das ist was du meintest wegen der Normalisierung, oder? Wie kann ich das ändern?

LG Peffie :smile:

Moin, Peffie,

versuch’s mal mit

 Select **distinct** Behandler 
 from 05\_Leistung order by Behandler 

In der Tabelle, die Du ansprichst, kommt der Behandler beliebig oft vor - in einer Tabelle

**Behandler** (<u>Behandler_ID</u>, Name, ...)

gäbe es ihn nur einmal. Halt normalisiert :wink:

Gruß Ralf

Danke Ralf…:smiley:

Ich hätte mal noch ne Frage :smile:

Ich brauch ein Formular, in dem ich die Klinik auswählen kann und dann wieder das Datum von bis, es sollen mir dann alle Erstkontakte angezeigt werde. Ich hab schon hin und her probiert aber irgendwie geht es einfach nicht :frowning:
Meine normale SQL-Abfrage sieht so aus:
SELECT tab_Leistungen.Pat_ID, tab_Leistungen.Klinik, tab_Leistungen.Erstkontakt
FROM tab_Leistungen
WHERE (((tab_Leistungen.Klinik)=„Innere A“) AND ((tab_Leistungen.Erstkontakt) Between #2/1/2013# And #2/28/2013#));

Da zeigt er mir das auch fein an, aber ich brauche es in einem Formular, wo der Benutzer die Klinik auswählen kann und dann eben den Zeitraum!

Ich dachte das man es auch so machen könnten mit dem Forms!Formular!Feld, aber wie mache ich das denn mit dem Datum in SQL?

Ich hoffe ihr versteht was ich meine :smile:

LG

Hi Peffie,

setz ein Dropdown auf das Formular, das die Kliniken zeigt, und benutze das als Filter für die Auswahl.

Mit dem Zeitraum wird es schon schwieriger, da müsste der Anwender selbst was eintippen, wobei die Prüfung dann recht heikel werden kann. Oder ein Dropdown bauen, das Zeiträume anbietet - auch aufwendig.

Gruß Ralf