Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Beim öffnen eines Formulars Datensätze generieren
zurück: Hauptformular durch Unterformular filtern weiter: Unterformular Ereignis dirty 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
IT-User
VBA-Legasteniker


Verfasst am:
04. Jul 2011, 20:02
Rufname:

Beim öffnen eines Formulars Datensätze generieren - Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo zusammen,
Ich möchte zu Schülern Zeugnisse generieren.
Dazu rufe ich aus dem Formular, das einen Schüler anzeigt das Zeugnisformular auf.
In diesem Formular sollen alle Fächer untereinander aufgelistet sein, und ich möchte hinter jedem Fach einfach nur die Note auswählen können.
Die Idee schien mir recht einfach. Aber.....
Ich habe 3 Tabellen: Schüler, Fächer und Zeugnis.
In der Tabelle Zeugnis wird das Datum, die Schüler_ID, die Fach_ID und die Note abgespeichert. D.h., dass pro Schüler und Zeugnis(Datum) für jedes Fach eine Zeile in die Zeugnis-Tabelle gelangen muss. Damit das ganze auch anwenderfreundlich ist, soll wie oben beschrieben die Liste der Fächer vorgegeben sein.
Genau da liegt mein Problem. Wenn ich das Formular aufrufe, müssten die Zeilen in der Zeugnistabelle erzeugt werden, so dass ich nur noch die Noten hinzufügen muß.
Und ich muß dann noch verhindern, dass bei einem 2. Aufruf des Formulars die Zeilen nicht neu erzeugt, sondern nur angezeigt werden.
Ich habe mal ein Formular ohne Funktion gebastelt, damit man sich ein Bild davon machen kann, wie ich mir das vorstelle.
Ich hoffe die Infos reichen aus.

_________________
mfg

Harald



Zeugnis.jpg
 Beschreibung:
Formular
 Dateigröße:  24.37 KB
 Angeschaut:  527 mal

Zeugnis.jpg



Zeugnis.zip
 Beschreibung:
Beispiel-DB

Download
 Dateiname:  Zeugnis.zip
 Dateigröße:  28.4 KB
 Heruntergeladen:  19 mal

KlausMz
Moderator Access


Verfasst am:
04. Jul 2011, 20:21
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo,
hat jeder Schüler immer alle Fächer?

Ansonsonsten kannst Du mit einer Anfügeabfrage alle Fächer an die Tabelle Zeugnis anhängen. Mit der Anfügeabfrage muss dann auch die Schülerid geschrieben werden.
Ich würde aber lieber einen Button machen, der die Abfrage ausführt, statt beim Öffnen des Formulars.

Außerdem würde ich das anders aufbauen. Du solltest eine Tabelle anlegen "Zeugnis" und in dieser Tabelle die Beschreibung des Zeugnisses, Datum, Jahrgang, etc. und ein Fremdschlüsselfeld zum Schüler.
Die jetzige Tabelle Zeugnis nennst Du dann ZeugnisFach und wird dann um ein Feld für die Zeugnisid erweitert.
Die Schüler haben ja auch jedes Jahr unterschiedliche Fächer, von daher glaube ich sowieso, dass das Datenmodell so nicht bleiben kann.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
IT-User
VBA-Legasteniker


Verfasst am:
04. Jul 2011, 23:02
Rufname:

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

IT-User am 04. Jul 2011 um 21:09 hat folgendes geschrieben:
Hallo Klaus,

vielen Dank, gute Idee!
Ja alle Schüle haben immer alle Fächer.
Das mit den Schülern und Zeugnissen ist nur ein äquivalentes, aber einfaches Beispiel.
ich werde das mit der Anfügeabfrage (und Button!) gleich ausprobieren und mich melden sobald es klappt.
Vielen Dank, das hat mir erst einmal sehr weitergeholfen!

Jawohl,
hat geklappt. Ich habe ein Unterformular eingefügt, das auf Knopfdruck gefüllt wird.
Dahinter kann ich jetzt die Noten eingeben.
Ich bin nur schon so platt, dass ich das in der Beispieldatenbank nicht rekonstruiert bekomme. Ich werde es morgen noch mal versuchen. Ich will ja auch für hier eine Lösung liefern.
Eine Sache ist allerdings noch unschön:
Wenn ich den Button anklicke, um die Datensätze zu erzeugen, muß ich erst noch 2 Meldungen mit OK bestätigen.
1. Meldung: "Sie sind dabei eine Anfügeabfrage auszuführen......"
2. Meldung: "Sie sind dabei x Zeile(n) anzufügen....."

Kann ich die auch noch abschalten?

_________________
mfg

Harald
Willi Wipp
Moderator


Verfasst am:
05. Jul 2011, 06:57
Rufname:
Wohnort: Raum Wiesbaden

Re: Beim öffnen eines Formulars Datensätze generieren - Re: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hi IT-User,

vermutlich rufst Du die Aktions-Abfragen (Anfuege) mit DoCmd.RunSQL oder DoCmd.OpenQuery auf.
Versuche es mal mit CurrentDB.Execute "...", 128 'dbFailOnError

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
IT-User
VBA-Legasteniker


Verfasst am:
14. Jul 2011, 21:40
Rufname:


AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo Willi,
sorry für die späte Rückmeldung.
Ich habe gar nicht mitgekriegt, dass da noch eine Antwort war.
Ich habe das mal ausprobiert:
Code:
Private Sub Fächer_anfügen_Click()
    CurrentDb.Execute "Fächerliste_anfügen", 128 'dbFailOnError
End Sub
Wobei "Fächerliste_anfügen" der Name der Anfügeabfrage ist.
hier bekomme ich aber eine Fehlermeldung vom Debugger:
Zitat:
Laufzeitfehler '3061':
1 Parameter wurde erwartet, aber es wurden zu wenig Parameter übergeben.
Vermutlich habe ich da wieder aus Unkenntnis etwas falsch interpretiert.
_________________
mfg

Harald
Willi Wipp
Moderator


Verfasst am:
15. Jul 2011, 03:17
Rufname:
Wohnort: Raum Wiesbaden

Re: Beim öffnen eines Formulars Datensätze generieren (II) - Re: Beim öffnen eines Formulars Datensätze generieren (II)

Nach oben
       Version: Office 2010

Hi IT-User,

vermutlich arbeitest Du in der Abfrage mit einem Formular-Steuerelement-Bezug.
Diesen musst Du bei Execute mit Eval (Achtung: Englische Syntax fuer den Bezug!) kapseln!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
IT-User
VBA-Legasteniker


Verfasst am:
17. Jul 2011, 21:04
Rufname:

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo Willi,
ich weiss nicht, ob ich das hier schon erwähnt habe, aber ich habe keine Ahnung von VBA.
Ich kann in C und UNIX-Scripte programmieren, daher verstehe ich einiges recht schnell, aber meine Kenntnisse in VBA beschrenken sich auf das, was ich durch Drag&Drop aus den Beiträgen in meine Module kopiere und solange anpasse, bis es funktioniert.
Die Accessprogrammierung mache ich ab und an nebenher für meinen Bekanntenkreis und hoffe dabei auch etwas zu lernen. Daher auch oft die langen Reaktionszeiten. Ich komme manchmal erst nach 2-3 Tagen wieder dazu etwas anzupassen. Der Job geht halt vor.
Um auf den Punkt zu kommen, ich habe nicht verstanden, was ich mit EVAL() machen soll.
Es ist korrekt, dass ich mit einer Abfrage arbeite, die ihren Wert aus einem Formularfeld bezieht, das halt bei einem neuen Formular noch leer ist.

_________________
mfg

Harald
Nouba
nicht ganz unwissend :)


Verfasst am:
17. Jul 2011, 22:04
Rufname:
Wohnort: Berlin

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo,

die Execute-Methode der DAO-Library kann keine Formularbezüge auswerten. Deswegen solltest Du mit der Eval-Funktion (die kann das in einer Abfrage) den Parameterwert ermitteln. Also im SQL-Text der Abfrage statt Formulare!Formularname!Steuerelementname Eval("Forms!Formularname!Steuerelementname") einsetzen. Oder den Parameter im Kode setzen.
Code:
Private Sub Fächer_anfügen_Click()
  Dim qdf As DAO.Querydef

  Set qdf = CurrentDb().Querdefs("Fächerliste_anfügen")
  qdf(0) = Me.MeinSteuerelement '1. Parameter zuweisen
  qdf.Execute dbFailOnError
End Sub

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
IT-User
VBA-Legasteniker


Verfasst am:
17. Jul 2011, 23:04
Rufname:

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo Nouba,
hat beides bei mir nicht geklappt. In
Code:
    Set qdf = CurrentDb().Querdefs("Fächerliste_anfügen")
fehlte bei .Querydefs das y.
Aber danach bekam ich die Fehlermeldung, dass ein 2. Parameter fehlt.
In der Abfrage beziehe ich mich noch auf ein 2. Feld, das kommt aber nicht aus dem akt. Formular. Daher komme ich mit Me. ... nicht weiter. Und die Syntax mit den eckigen Klammern aus der Abfrage wollte VBA nicht verarbeiten.
Mit EVAL() in der Abfrage passierte gar nichts.
D.h. ich benutze einen Steuerelementinhalt zum Einfügen, da hat EVAL() keine sichtbare Wirkung und einen Steuerelementinhalt als Bedingung. Wenn ich da EVAL() verwende, bekomme ich eine Fehlermeldung "Fehlt" mehr steht in der Meldung nicht.
Anschl. in der Debuggermeldung bekomme ich die Fehlernummer: 2950
oops, schon nach 23:00
Ich muß in die horizontale.
Ich schaue morgen noch mal rein. Auf jeden Fall schon mal Danke!!

_________________
mfg

Harald
Nouba
nicht ganz unwissend :)


Verfasst am:
17. Jul 2011, 23:50
Rufname:
Wohnort: Berlin

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo Harld,

dann lade doch bitte noch einmal ein aktuelles Beispiel hoch, sonst wissen die Helfer nicht, wo sie suchen sollen.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
IT-User
VBA-Legasteniker


Verfasst am:
21. Jul 2011, 23:35
Rufname:

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Sorry, hat wieder etwas länger gedauert.
Hier das Beispiel:

_________________
mfg

Harald



Zeugnis_V3.zip
 Beschreibung:

Download
 Dateiname:  Zeugnis_V3.zip
 Dateigröße:  116.1 KB
 Heruntergeladen:  12 mal

Nouba
nicht ganz unwissend :)


Verfasst am:
22. Jul 2011, 04:25
Rufname:
Wohnort: Berlin

AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo,

Anfügeabfrage wird beim Klicken des Knopfs nun ausgeführt.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.



Zeugnis_V3.zip
 Beschreibung:

Download
 Dateiname:  Zeugnis_V3.zip
 Dateigröße:  49.13 KB
 Heruntergeladen:  21 mal

Gast_2011
Gast


Verfasst am:
22. Jul 2011, 10:03
Rufname:


AW: Beim öffnen eines Formulars Datensätze generieren - AW: Beim öffnen eines Formulars Datensätze generieren

Nach oben
       Version: Office 2010

Hallo Nouba,
vielen Dank für die Hilfe.
Jetzt ist das Formular noch anwenderfreundlicher und ich habe wieder etwas dazu gelernt Smile !

Also DANKE nochmals
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: Anzahl der Datensätze zählen (im Formular oder Bericht) ? 3 anna-bolika 3756 31. März 2005, 12:50
Dalmatinchen Anzahl der Datensätze zählen (im Formular oder Bericht) ?
Keine neuen Beiträge Access Tabellen & Abfragen: Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info 2 Steve 914 14. Jan 2005, 00:43
Steve Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info
Keine neuen Beiträge Access Tabellen & Abfragen: multiplizieren zweier verschiedener Datensätze 3 Stara 913 13. Jan 2005, 20:36
Skogafoss multiplizieren zweier verschiedener Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage um doppelte Datensätze zu ermitteln? 5 tom444 5066 14. Dez 2004, 23:49
Skogafoss Abfrage um doppelte Datensätze zu ermitteln?
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl der Datensätze anzeigen? 3 MichaelB 1122 19. Okt 2004, 12:45
lothi Anzahl der Datensätze anzeigen?
Keine neuen Beiträge Access Tabellen & Abfragen: Einmalige Datensätze löschen 18 frankkugler 1614 18. Okt 2004, 15:33
frankkugler Einmalige Datensätze löschen
Keine neuen Beiträge Access Tabellen & Abfragen: datensätze suchen 13 mr@ 1514 13. Sep 2004, 10:21
meyster datensätze suchen
Keine neuen Beiträge Access Tabellen & Abfragen: 24 felder aus 1 DS in 24 versch. Datensätze kopieren. 3 Mirko 593 30. Jul 2004, 13:55
Willi Wipp 24 felder aus 1 DS in 24 versch. Datensätze kopieren.
Keine neuen Beiträge Access Tabellen & Abfragen: Formular aus Endlosformular öffnen ? 10 G-Markus 1619 20. Jul 2004, 15:38
Gast Formular aus Endlosformular öffnen ?
Keine neuen Beiträge Access Tabellen & Abfragen: Summen über mehrere Datensätze bilden 5 Matti_71 1497 03. Jul 2004, 12:38
Willi Wipp Summen über mehrere Datensätze bilden
Keine neuen Beiträge Access Tabellen & Abfragen: Suche Formel zur Abfrage doppelte Datensätze 2 sklein2405 2827 24. Jun 2004, 09:22
Willi Wipp Suche Formel zur Abfrage doppelte Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: Vertikal abgelegte "Datensätze" in Zeilen umwandel 1 hoschi 480 01. Jun 2004, 20:29
Helge Vertikal abgelegte "Datensätze" in Zeilen umwandel
 

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