Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: boehnli01 am September 03, 2011, 14:39:50

Titel: Daten übernehmen
Beitrag von: boehnli01 am September 03, 2011, 14:39:50
Hallo zusammen, ich brauche Eure Unterstützung betreffend einer Prozedur.

In meinem Endlosformular will ich manuell Datensätze hinzufügen. Die Daten will ich aber in einem separaten Fenster eingeben und habe dafür folgende Prozedur :

Private Sub Command274_Click()
DoCmd.OpenForm "frm_T_SalesOrders_DUMMY", DataMode:=acFormAdd, WindowMode:=acDialog
Me.Requery
End Sub


Nun möchte ich, das gewisse Daten von dem Datensatz übernommen werden, von dem aus ich den Click gemacht habe. Zum Beispiel sollten  ITEM und ITEMNAME sollten 1:1 übernommen werden. Wie sollte hier der Befehl lauten?

Kann mir ja jemand helfen. Vielen Dank im voraus.

Gruss Cédric
Titel: Re: Daten übernehmen
Beitrag von: MzKlMu am September 03, 2011, 15:36:09
Hallo,
ZitatITEM und ITEMNAME
Eines der Felder musst Du nicht übergeben. Es genügt der Primärschlüssel (vermutlich ITEM). Das andere Feld ergibt sich aus den Beziehungen. Das Feld ITEMNAME auch im anderen Formular zu speichern wäre ja redundant. Item kannst Du in den Openargs übergeben:
Private Sub Command274_Click()
   DoCmd.OpenForm "frm_T_SalesOrders_DUMMY", , , , acFormAdd, acDialog, Me!Item
End Sub

Und dann im Ereignis "Beim Anzeigen" des neuen Formulars:
Private Sub Form_Current()
   If Me.NewRecord = True Then
       Me!Item = Me.OpenArgs
   End If
End Sub
Titel: Re: Daten übernehmen
Beitrag von: DF6GL am September 03, 2011, 17:03:13
Hallo,

wobei "Item" ein reserviertes Wort ist und DRINGEND in Eckklammer gesetzt (oder gleich eine besserer Name verwendet)  werden sollte  ...
Titel: Re: Daten übernehmen
Beitrag von: boehnli01 am September 03, 2011, 21:34:24
Mag wohl komisch tönen, aber ich habe keinen Primärschlüssel auf der Tabelle.  Desshalb sollte es irgendwie möglich sein auf diesem Befehl weitere Felder zu addieren:

Private Sub Command274_Click()   
DoCmd.OpenForm "frm_T_SalesOrders_DUMMY", , , , acFormAdd, acDialog, Me!Item & ???
End Sub


Der Befehlt funktioniert, aber übergibt dann natürlich auch den ITEM auf ins neue Feld ITEMDESC
Private Sub Form_Current()

If Me.NewRecord = True Then
Me.[ITEM] = Me.OpenArgs
Me.ITEMDESC = Me.OpenArgs

End If

End Sub



Geht das überhaupt ?

Danke und gruss Cédric
Titel: Re: Daten übernehmen
Beitrag von: MzKlMu am September 03, 2011, 22:17:32
Hallo,
ZitatMag wohl komisch tönen, aber ich habe keinen Primärschlüssel auf der Tabelle.
Dann verpasse der Tabelle einen Primärschlüssel (Autowert) und übergebe diesen. Dann ist Item und Itemname nicht erforderlich.
Jede Tabelle sollte in einer DB einen Primärschlüssel haben. Ohne Primärschlüssel kann man keine Datenbank machen.

Und folge dem Rat von Franz und nenne das Feld um.