Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Nummer eingeben -> weitere Daten erscheinen
zurück: Formular --> Bericht weiter: Unterformular nach eingabe von Feld in Formular aktuallisier Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
kugelhagel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Nov 2008, 00:17
Rufname: Tobi

Nummer eingeben -> weitere Daten erscheinen - Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo Ihr Lieben,

ich schildere euch kurz meine beiden Probleme mit folgendem Hintergrund:
*Datenbank über Kurse
*2 Tabellen (tbl_kurse und tbl_personen)
*6 verschiedene Kurse mit jeweils verschiedenen Terminen: insg. ca 120 Stück pro Jahr, mit jeweils 20 Teilnehmern

Nun soll man im Formular den Kurs wählen können.
Entweder soll man eine Kurs Nummer eingeben können und dann direkt die Daten erhalten (Kurs Name|Datum Beginn|Datum Ende|Anzahl freier Plätze [noch nicht geschafft ins Formular einzufügen])

oder

man soll erst den Kurs Wählen und dann noch das Datum (Datum soll aber dann eingegrenzt sein, auf wirklich nur diesen Kurs).

Was muss ich posten, damit dies noch besser zu verstehen ist? Bzw. besser geholfen werden kann?

Hier mal der Code von der Abfrage:
Code:
SELECT P.Anrede, P.Vorname, P.Nachname, P.Firma, P.Anrede2, P.Ansprechpartner,
       P.Straße, P.Postleitzahl, P.Ort, P.Telefonnummer, P.Telefaxnummer,
       P.[E-Mail], K.ID_Kurs, K.Kurs, K.KursDatumvon, K.KursDatumbis,
FROM   tbl_kurse AS K
       INNER JOIN tbl_personen AS P
       ON K.ID_Kurs = P.ID_Kurs;
derArb
getting better


Verfasst am:
16. Nov 2008, 02:10
Rufname: derArb
Wohnort: Berlin


AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo,

Ich hab die Schlüsselfelder mal präziser bezeichnet

ID_Kurs_P = Primarykey(Autowert) in tbl_kurse
ID_Kurs_F = Fremdschlüsselfeld(Zahl..Duplikate ja) in tbl_personen
ID_P = Primarykey (Autowert) in tbl_personen

ID_Kurs_ID_P : ID_Kurs_ID_F muss in 1: n Beziehung stehen

dann wäre der SQL code in der Abfrage die Filterung nach Kursname
Code:
SELECT K.ID_Kurs_P, K.KursName, K.KursDatumvon , K.KursDatumbis, P.ID_P ,
       P.ID_Kurs_F, P.Anrede , P.Vorname, P.Nachname , P.Firma,
       P.Ansprechpartner, P.Straße, P.Postleitzahl , P.Sonstiges,
       P.Mitarbeiter
FROM   tbl_kurse AS K
       INNER JOIN tbl_personen AS P
       ON K.ID_Kurs_P = P.ID_Kurs_F
WHERE  K.KursName="Kurs1";
Du willst aber über das Formular das Ganze steuern.

Dazu muss das Kriterium in der Abfrage sich auf ein Suchfeld im offenen Formular beziehen
Code:
SELECT K.ID_Kurs_P, K.KursName, K.KursDatumvon , K.KursDatumbis, P.ID_P,
       P.ID_Kurs_F, P.Anrede, P.Vorname, P.Nachname, P.Firma,
       P.Ansprechpartner, P.Straße, P.Postleitzahl, P.Sonstiges,
       P.Mitarbeiter
FROM   tbl_kurse AS K
       INNER JOIN tbl_personen AS P
       ON K.ID_Kurs_P = P.ID_Kurs_F
WHERE  K.KursName = Forms!HF_Kurse!txtSucheNachKursName;
{Falsch platziertes & entfernt by Willi Wipp}
Es gibt nun viele Wege einer Lösung
Ein Vorschlag ist, den SQL code der Abfrage in einen Textstring zu wandeln und abhängig davon die
Datenherkunft des Formular zu bestimmen
Nach Eingabe in das Suchfeld 'txtSucheNachKursName' im Formular
Code:
'DasSuchfeld mit diesem Namen mus existieren
Private Sub txtSucheNachKursName_AfterUpdate()
    Dim strSQL As String
   
    strSQL = "SELECT K.ID_Kurs_P, K.KursName, K.KursDatumvon, " & _
                    "K.KursDatumbis, P.ID_P, P.ID_Kurs_F, P.Anrede, " & _
                    "P.Vorname, P.Nachname, P.Firma, P.Ansprechpartner, " & _
                    "P.Straße, P.Postleitzahl, P.Sonstiges, " & _
                    "P.Mitarbeiter " & _
               "FROM tbl_kurse AS K " & _
                    "INNER JOIN tbl_personen AS P " & _
                    "ON K.ID_Kurs_P = P.ID_Kurs_F " & _
              "WHERE K.KursName= '" & Forms!HF_Kurse!txtSucheNachKursName & "'"
    Me.RecordSource = strSQL
End Sub
usw.

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
kugelhagel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Nov 2008, 13:03
Rufname: Tobi

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hi Arb erstmal danke für die detailreiche Antwort.

Leider bin ich in dem SQL'en noch nicht so bewand.
Also diese 1:n Beziehung besteht ja.
1=tbl_kurse
n=tbl_personen
Ich glaube du hast auch noch den Kurs in KursName verändert, nach langen überlegungen habe ich es dann gefunden/verstanden.
Code:
WHERE  K.KursName="Kurs1";
Dieses "Kurs1" bezeichnet das Kriterium. Und das jetzt durch ein Textfeld zu ersetzen wo der Benutzer später selbst auswählen kann ist klar nachvollziehbar.
-------------------------------------------
zum 2ten Code:
Zitat:
Kann das aber auch ein Dropdown sein? Es sollen die 6 Kurse schon drin stehen?
Leider erscheint jetzt ein Fehler:
Zitat:
Syntaxfehler (fehlender Operator) in Abfrageausdruck "WHERE K.KursName= & Forms!frm_index_eintragen!txtSucheNachKursName;"
Leider kann ich diesen nicht finden.

Zum 3ten Code:
Muss ich diesen jetzt im Formular einfügen? Unter Code Generator?
Ist der Name "txtSucheNachKursName", oder beschreibt dieses "txt" nur ein Textfeld?

Ansonsten super klar erklärt und deutlich zum verstehen gemacht (gut nachvollziehbar). Idea
Nachtrag: kugelhagel am 16. Nov 2008 um 12:37 hat folgendes geschrieben:
So, dass mit dem Syntaxfehler habe ich in den Griff bekommen:
Code:
WHERE  K.KursName=" & Forms!frm_index_eintragen!txtSucheNachKursName";
Also jetzt zeigt er zumindest keinen Syntax Fehler mehr an.

Zum Formular:
Habe deinen Code und das Suchfeld nun auch eingefügt.
Wenn ich jetzt etwas eingebe dann kann ich alle Datensätze auswählen die etwas mit den Kriterium zu tuhen haben.

Also ne Art Such-Funktion. Leider ist es nicht das was ich gesucht habe (kann ich aber später auch gut gebrauchen -> also nicht umsonst)
------------------------------------------------------------
Ich beschreibe das am besten nochmal:

Also jemand möchte sich zum Kurs anmelden, er sagt dem Mitarbeiter welchen Kurs er belegen will, und wann.
Nun wählt der Mitarbeiter im Feld als ersten den Kurs aus und dann soll er nur noch das Datum auswählen können wann dieser Kurs auch wirklich stattfindet.
(Dabei soll er keine anderen Datensätze von anderen Teilnehmer sehen können)
Jetzt trägt der noch die Personal-Daten vom Teilnehmer ein. - Fertig

Es kann auch so gemacht werden, das der Mitarbeiter nur eine Kurs Nummer eingibt und der Kurs Name und das Datum dann erscheint. Durch den ID_Kurs_P
hat ja jeder Kurs eine eigene Nummer.

Wenn ich in der tbl_personen im Feld "ID_Kurs_F" eine Nummer eingebe ist der Teilnehmer diesem Kurs hinzugefügt. Muss ich nun versuchen die Tabelle ins das Formular zu integrieren?

Bin auf weitere Lösungsvorschläge gespannt.

Nachtrag: kugelhagel am 16. Nov 2008 um 12:39 hat folgendes geschrieben:
Es funktioniert so! Juhu Very Happy

Danke Arb

Nachtrag: kugelhagel am 16. Nov 2008 um 16:54 hat folgendes geschrieben:
Hi,

leider musste ich die Tabelle noch ein bisschen Modifizieren, jetzt klappt das aber mit dem Suchen nicht mehr.

Hier mal der Code der Abfrage:
Code:
SELECT   K.ID_Kurs_P, K.KursName, K.KursDatumvon, K.KursDatumbis, K.Tag,
         K.SonstigeInformationen,
         Nz(Count(P.ID_Personen_P),0) AS AnzahlvonID_Personen_P
FROM     tbl_kurse AS K
         LEFT JOIN tbl_personen AS P
         ON K.ID_Kurs_P=P.ID_Kurs_F
WHERE    K.KursName=" & Forms!frm_index_kurs!txtSucheNachKursName"
GROUP BY K.ID_Kurs_P, K.KursName, K.KursDatumvon, K.KursDatumbis, K.Tag,
         K.SonstigeInformationen;
Kann mir jemand sagen, wie ich das jetzt in Formular Sprache umwandel bzw was ins Formular reinkommt?
derArb
getting better


Verfasst am:
16. Nov 2008, 19:39
Rufname: derArb
Wohnort: Berlin

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo,

so sollte es gehen

Abfrage SQLcode
Code:
SELECT   K.ID_Kurs_P, K.KursName, K.KursDatumvon, K.KursDatumbis, K.Tag,
         K.SonstigeInformationen,
         Nz(Count(P.ID_Personen_P), 0) As AnzahlvonID_Personen_P
FROM     tbl_kurse AS K
         LEFT JOIN tbl_personen AS P
         ON K.ID_Kurs_P = P.ID_Kurs_F
WHERE    K.KursName = [Forms]![frm_index_kurs]![txtSucheNachKursName]
GROUP BY K.ID_Kurs_P, K.KursName, K.KursDatumvon, K.KursDatumbis, K.Tag,
         K.SonstigeInformationen;
VBA code im Formular
Code:
Private Sub txtSucheNachKursName_AfterUpdate()
    Dim strSQL As String
   
    strSQL = "SELECT K.ID_Kurs_P, K.KursName, K.KursDatumvon, " & _
                    "K.KursDatumbis, K.Tag, K.SonstigeInformationen, " & _
                    "Nz(Count(tbl_personen.ID_Personen_P), 0) " & _
                                              "AS AnzahlvonID_Personen_P " & _
               "FROM tbl_kurse AS K " & _
                    "LEFT JOIN tbl_personen " & _
                    "ON K.ID_Kurs_P = P.ID_Kurs_F " & _
              "WHERE K.KursName = " & _
                        "[Forms]![frm_index_kurs]![txtSucheNachKursName] " & _
           "GROUP BY K.ID_Kurs_P, K.KursName, K.KursDatumvon, " & _
                    "K.KursDatumbis, K.Tag, K.SonstigeInformationen"
    Me.RecordSource = strSQL
End Sub

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Gast



Verfasst am:
16. Nov 2008, 21:02
Rufname:


AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Ahh Wunderbar es geht wieder. Vielen dank. Noch eine Frage, ist das auch mit einem Dropdown Menü möglich wo die Kriterien schon fest eingegeben sind?

Bei mir geht das nämlich nicht. Oder muss dann der Code wieder geändert werden?
derArb
getting better


Verfasst am:
16. Nov 2008, 21:26
Rufname: derArb
Wohnort: Berlin

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo,

in der Entwurfsansicht auf das Feld 'txtSucheNachKursName' mit rechter Maustaste
und Ändern zu Kombinationsfeld. den Feldnamen lassen (richtiger wäre, ihn zu ändern)

Im Reiter Daten (Eigenschaften)
Datensatzherkunft :tbl_Kurse

Im Reiter Format (Eigenschaften
Spaltenzahl: 2
Spaltenbreite: 0;3

den code ändern zu
Code:
Private Sub txtSucheNachKursName_AfterUpdate()
    Dim strSQL As String
   
    strSQL = "SELECT K.ID_Kurs_P, K.KursName, K.KursDatumvon, " & _
                    "K.KursDatumbis, K.Tag, K.SonstigeInformationen, " & _
                    "Nz(Count(tbl_personen.ID_Personen_P), 0) " & _
                                              "AS AnzahlvonID_Personen_P " & _
               "FROM tbl_kurse AS K " & _
                    "LEFT JOIN tbl_personen " & _
                    "ON K.ID_Kurs_P = P.ID_Kurs_F " & _
              "WHERE K.ID_Kurs_P = " & _
                        "[Forms]![frm_index_kurs]![txtSucheNachKursName] " & _
           "GROUP BY K.ID_Kurs_P, K.KursName, K.KursDatumvon, " & _
                    "K.KursDatumbis, K.Tag, K.SonstigeInformationen"
    Me.RecordSource = strSQL
End Sub
Code:
' es ist jetzt die alte Zeile
'             "WHERE K.KursName = " & _
' Neu:
'             "WHERE K.ID_Kurs_P = " & _

mfg
derArb
Nachtrag: derArb am 16. Nov 2008 um 20:43 hat folgendes geschrieben:
Hallo,

sinnvoll wäre nun auch ein Button, der wieder alle Kurse anzuzeigen ermöglicht.
Code:
Private Sub btnAlleZeigen_Click()
   Me.RecordSource = "tbl_Kurse"
End Sub

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
kugelhagel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Nov 2008, 21:45
Rufname: Tobi

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hi, thx für die schnelle Antwort.
Leider geht das so nicht.

In dem Dropdown Feld sind jetzt die Kursnamen Doppelt und Dreifach drin.
Ich denke das liegt daran, dass in der Tabelle "tbl_kurs" alle Kurse eingetragen sind. Es gibt ja einen Kurs an meheren Tagen, deshalb sind im Feld "KursName" ja mehrere Eintrage.

Übrigens auf das selbe Ergebnis komme ich auch, wenn ich den alten Code nehme und die Einstellungen an der Spaltenzahl und Breite nicht vornehme.


Wie könnte ich das Problem sonst noch umgehen?
Eine neue Tabelle nur für die 8 Kurse erstellen? Oder gibt es noch eine elegantere Lösung.
derArb
getting better


Verfasst am:
16. Nov 2008, 21:58
Rufname: derArb
Wohnort: Berlin

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo,

dann ein neues Formular mit einem Listenfeld, in welchem auch das Datumvon und DatumBis gezeigt wird.
Ein Klick darauf öffnet dann den richtigen Datensatz

oder

das Kombinationsfeld um DatumVon und DatumBis anzeigen erweitern, damit Du den richtigen Kurs aussuchen kannst.

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
kugelhagel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Nov 2008, 22:23
Rufname: Tobi

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

kugelhagel am 16. Nov 2008 um 21:08 hat folgendes geschrieben:
Es soll nur ne Kurze Hilfe für einen Mitarbeiter sein, um die Richtige Kursnummer und das Datum herauszusuchen (dies wird dem Kunde vorgeschlagen, und wenn er ableht wird weiter geguckt).

Deshalb soll man auch nur das mit dem Kurs wählen können, damit man alle Daten eines Kurses zu allen möglichen Terminen einsehen kann.

Würde das nicht über ein eingegebenes Kriterium im Dropdown Button gehen?
Ich meine der Text der da erscheint ist doch der selbe.

???

Habe es jetzt mit einer Hilfs Tabelle gelöst, in der nur die 8 Kurse drin stehen.

Eine Sache interessiert mich aber noch. Wie füge ich in die WHERE Klausel noch ein Feld aus einer Tabelle ein? Damit ich 2 oder mehr Kriterien habe. Ich könnte dies nämlich noch an einer anderen Stelle gut gebrauchen.
derArb
getting better


Verfasst am:
16. Nov 2008, 22:32
Rufname: derArb
Wohnort: Berlin

AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

Hallo,

WHERE......... AND....

oder

WHERE.....OR

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
kugelhagel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. Nov 2008, 13:24
Rufname: Tobi


AW: Nummer eingeben -> weitere Daten erscheinen - AW: Nummer eingeben -> weitere Daten erscheinen

Nach oben
       Version: Office 2003

danke
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datanorm Daten erzeugen 2 HH Hans 1531 08. Feb 2005, 10:49
HH Hans Datanorm Daten erzeugen
Keine neuen Beiträge Access Tabellen & Abfragen: Vergleich neue Daten mit alten Daten! 28 Sebowsky 3164 29. Jan 2005, 11:38
Sebowsky Vergleich neue Daten mit alten Daten!
Keine neuen Beiträge Access Tabellen & Abfragen: Summieren von gruppierten Daten 3 Thomas Theurer 1202 27. Jan 2005, 17:36
mapet Summieren von gruppierten Daten
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus Abfrage automatisch in Tabelle aktualisieren 4 Christian22 4080 15. Jan 2005, 13:13
Christian22 Daten aus Abfrage automatisch in Tabelle aktualisieren
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeigen der Daten einer vorhandenen Tabelle in einer Abfrag 6 brauzer 830 02. Dez 2004, 13:28
brauzer Anzeigen der Daten einer vorhandenen Tabelle in einer Abfrag
Keine neuen Beiträge Access Tabellen & Abfragen: Importieren von bestimmten Excel Daten 63 umbroboy 11978 25. Nov 2004, 12:07
umbroboy Importieren von bestimmten Excel Daten
Keine neuen Beiträge Access Tabellen & Abfragen: Anzeige aller Daten älter als x Tage 2 abu 819 16. Nov 2004, 13:07
abu Anzeige aller Daten älter als x Tage
Keine neuen Beiträge Access Tabellen & Abfragen: Komment. u Daten in zelle schreiben, Zellenausrichtung festl 2 k@lle 816 06. Okt 2004, 11:49
k@lle Komment. u Daten in zelle schreiben, Zellenausrichtung festl
Keine neuen Beiträge Access Tabellen & Abfragen: Bei"Parameterwert eingeben"Para über Liste auswähl 10 Figo 1008 20. Aug 2004, 12:09
Figo Bei"Parameterwert eingeben"Para über Liste auswähl
Keine neuen Beiträge Access Tabellen & Abfragen: laufende Nummer - bitte um Hilfe! 1 Gast 612 17. Aug 2004, 11:38
stpimi laufende Nummer - bitte um Hilfe!
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus mehreren Tabellen in einer Gesamttabelle richtig e 5 hoschi 1573 04. Jun 2004, 13:01
stpimi Daten aus mehreren Tabellen in einer Gesamttabelle richtig e
Keine neuen Beiträge Access Tabellen & Abfragen: Änderungen an abgefragten Daten vornehmen 1 mimey 1139 28. Mai 2004, 22:06
lothi Änderungen an abgefragten Daten vornehmen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project