Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Rol am August 18, 2014, 00:13:08

Titel: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: Rol am August 18, 2014, 00:13:08
Hallo Alle Zusammen,
Da ich neu mit Access arbeite, wollte ich folgendes fragen :
Habe ein Eingebeformular erstellt ( wo zb auch die Id-Spalte/Nr  sichtbar ist, sollbei uns als Interne-Nr gehandhabt werden ), diese neuen Daten werden über eine Schaltfläche in die Tabelle gespeichert.
Jetzt möchte ich zb über den gleiche Makro/Befehl *Speichern* etwas hier hinzufügen; drucken über einen Bericht den letzten Datensatz oder die Id-Nr ( die komplette Reihe auf der diesbezüglichen Tabelle) aus dem vorhandenen Formular.
Hoffe Ihr konntet meine Frage verstehen und verbleiben dankend
und mit schönen Grüssen
Rol
Titel: Re: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: bahasu am August 18, 2014, 05:17:23
Hi,

siehe: http://www.donkarl.com?FAQ5.9 (http://www.donkarl.com?FAQ5.9)

Harald
Titel: Re: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: database am August 19, 2014, 13:02:14
Hallo,

" ... Id-Spalte/Nr  sichtbar ist, sollbei uns als Interne-Nr gehandhabt werden ... "
Dir ist aber schon bewusst dass hierbei eine fortlaufend lückenlose Nummernvergabe NICHT gewährleistet ist!

"... diese neuen Daten werden über eine Schaltfläche in die Tabelle gespeichert...."
Wenn du eine Tabelle als Datenherkunft für das Formular verwendest brauchts eigentlich keinen besonderen Befehl zum Speichern der eingegebenen Daten.
Das erledigt Access in der Regel automatisch, sobald du den aktuellen Datensatz verläßt.

"... oder die Id-Nr ( die komplette Reihe auf der diesbezüglichen Tabelle) aus dem vorhandenen Formular "
da du zuvor den letzten Datensatz angesprochen hast, gehe ich davon aus dass hiermit nicht die Datensätze sondern die ID-Spalte gemeint sein wird - oder sehe ich das fasch?
Titel: Re: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: Rol am August 19, 2014, 21:59:51
Hallo Peter,
Nicht so ganz - ich erkläre :ein User gibt jetzt in das Formular Daten ein ( es dient als Info-Montageblatt für unsere Techniker ) dh Adresse - was zu tun ist ( mit Artikel-Nr )  usw. Diese  Eingabe
will ich auf ein Blatt via Schaltfläche bringen. Durch viel lesen und testen, geht es anscheinend nur über eine Abfrage für eine Erstellung eines Berichtes. Nur ich komme ehrlich mit der Formel nicht klar.

Harald - sein Vorschlag war auch ganz nah dran, nur die Formel verstehe ich nicht und wie bekomme ich diese in das Formular - es kann ja nur über die Schaltfläche gehen. ???

Desweiteren habe ich noch eine Frage  :):

Verwende diesen Code :
Private Sub edtEinloggen_Click()
Dim rcstblUser As Recordset

If Len(Me.edtNachname.Value) = 0 Then
   Me.edtNachname.SetFocus
   Beep
   Me.lblAnmeldeErgebnis.Caption = "Bitte geben Sie einen Namen ein!"
Else
Set rcstblUser = CurrentDb.OpenRecordset("tblUser", dbOpenDynaset)
rcstblUser.FindFirst "[USER NACHNAME]= '" & Me.edtNachname & "'"

If rcstblUser.NoMatch Then
   Me.edtNachname.SetFocus
   Beep
   Me.lblAnmeldeErgebnis.Caption = "Das ist kein gültiger Name!"
Else
If rcstblUser.Fields("User Passwort").Value = Me.edtPasswort.Value Then
   p_IngUSERID = rcstblUser.Fields("USER ID").Value
   p_strUSERNACHNAME = rcstblUser.Fields("USER VORNAME").Value & _
   " " & rcstblUser.Fields("USER NACHNAME").Value
   Me.lblAnmeldeErgebnis.Caption = "Anmeldung erfolgreich."
   LoginName = Me.edtNachname.Value
      DoCmd.Close acForm, "editUser", acSaveNo       
      DoCmd.OpenForm " Basis "
   
Else
   Me.edtPasswort.SetFocus
   Beep
   Me.lblAnmeldeErgebnis.Caption = "Das ist kein gültiges Passwort"
   End If
End If
End If

End Sub

Also : DoCmd.Close acForm, "editUser", acSaveNo  macht er nicht dh schliesst das Formular editUser nicht
Dann wollt ich, dass zb beim User 1 das Formular Basis und beim User 2 das Formular Basis 2 sich öffnet, wenn die Daten bei der Abfrage übereinstimmten.  Wie kann ich diese Formel umbauen.   

Anbei ein Printscrenn des Formulares.

Vielen Vielen Dank für eure Hilfe und schöne Grüsse
Roland




Titel: Re: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: MaggieMay am August 19, 2014, 22:15:12
Hallo,

der Datensatz, den du (vermutlich im Form "Basis") eingibst, sollte eine eindeutige ID haben.
Vor dem Öffnen des Berichts muss der aktuelle, soeben eingegebene Datensatz gespeichert werden.
Dann sollte der Vorschlag von Harald doch funktionieren - oder du hast dein Vorhaben noch nicht genau genug geschildert.

Warum das Formular "editUser" nicht geschlossen wird, wenn alle Eingaben korrekt sind, sehe ich ehrlich gesagt nicht.
Gibt es eine Fehlermeldung?

acSaveNo sollte übrigens überflüssig sein, oder hast du während der Laufzeit etwas an dem Formular geändert?
Titel: Re: Letzte eingefügte Daten als Bericht Drucken
Beitrag von: database am August 20, 2014, 12:11:50
Hallo,

wenn das Formular nicht geschlossen wird stimmt vermutlich der Formularname nicht - sonst sehe ich keinen Grund für das Versagen. acSaveNo ist im 'Normalfall' - so wie MaggieMay geschrieben hat - überflüssig.

... DoCmd.OpenForm " Basis " ...
Warum hast du da vor und nach dem Formularnamen ein Leerzeichen?

Für den Bericht erstelle dir eine Abfrage mit allen relevanten Feldern aus der Tabelle 'Aufmass/Montagen' inkl. der ID-Spalte und baue dir dann einen Bericht zusammen, der diese Abfrage als Datenherkunft verwendet.
Dann Baust dir eine Schaltfläche ins Formular zum Aufrufen des Berichts ein
Ins Click-Ereignis schreibst du dann den Befehl aus der FAQ  ...   DoCmd.OpenReport "DeinBericht", , , "Id =" & Me!Id
den Berichtsnamen, den Namen des ID-Feldes der Abfrage und den Namen des ID-Feldes am Formular musst du natürlich deinen Gegebenheiten anpassen.
Damit das funktioniert, muss der letzte Datensatz schon in der Tabelle stehen, sonst wird dieser nicht im Abfrage-Ergebnis erscheinen.
Das solltest du erreichen in dem du folgende Zeilen noch VOR den Berichtsaufruf einbaust

Me.AllowEdits = True
DoCmd.RunCommand acCmdSaveRecord
Me.AllowEdits = False



HTH