5.2k Aufrufe
Gefragt in Datenbanken von
Hallo Experten,

ich stoße mal wieder an meine - zugegenermaßen recht niedrige - Grenze!

Ich habe eine Tabelle, in die 4 Felder erfaßt werden sollen:
1. Innendienstmitarbeiter_ID
2. Aussendienstmitarbeiter_ID
3. Datum
4. Stundenanzahl

In einem dem Erfassungsformular vorgeschalteten Formular wählt man per Kombi Feld den Innen- und den Außendienstmitarbeiter aus.

Dann wird über einen Button das Erfassungsformular (mit Unterformular) mit folgendem Code geöffnet:

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm_stundenerfassen"

stLinkCriteria = "[idm_ID]=" & Me![kombi-idm] & " AND [adm_ID]=" & Me![kombi-adm]

DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.GoToRecord , , acNewRec

--> es werden also die ID´s übergeben, was auch hervorragend funktionert, AUSSER es gibt noch keinen Datensatz für die Kombination aus idm_ID und adm_ID. Wenn ich in der Tabelle manuell für die Kombination einen Datensatz eingebe (also idm_ID, adm_ID, Datum, Stundenanzahl) und danach das Ganze über das Formular aufrufe funktionierts einwandfrei.

Hat jemand eine Idee, wie das zu beheben ist?

Vielen Dank schon jetzt!

5 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Torsten,

Es werden nicht die IDs übergeben, sondern Selektionskriterien, die die Datensätze
entsprechen einschränken. Die IDs bekommst du so nicht gesetzt. Deine gotorecord-Codezeile
würde höchstens in deinem vorgeschalteten Formular zu einem neuen Record springen. Du
musst also in deinen Erfassungsformular die Eigenschaft auf "neuer Datensatz" (ich sitze
gerade im Zug und habe die genaue Bezeichnung nicht parat, das G1 kann kein Acces ;-) setzen
und beim Ereignis "neuer Datensatz" die Defaultwerte aus der Vorerfassung einsetzen. Klar?

Gruß Ralf
0 Punkte
Beantwortet von
Hallo Ralf,

danke für das ZUeGige Feedback :-)

Die Eigenschaft "neuer Datensatz" o. ä. hab ich leider nicht gefunden. Und: mein Erfassungsformular enthält 2 Unterformulare, deshalb weiss ich nicht, wo ich diese Eigenschaft setzen müsste.

Das Erfassungsformular zeigt im Formularkopf den Innen- und Außendienstmitarbeiter an, für die die Stunden erfasst werden sollen. Ufrm1 ist ein Einzelansicht-Formular zum Erfassen eines neuen Datensatzes (idm_ID, adm_ID, Datum, Stundenzahl), das Ufrm2 ist das gleiche wie Ufrm1, aber als Endlosformular. Einziger Zweck des Ganzen: der neu zu erfassende Datensatz steht oben statt unten.

Wenn Du noch Muse hast, freue ich mich über einen Tip ...

Danke + Gruß
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Torillo,

angenommen dein vorgeschaltetes Formular heisst "frmMAauswahl" und hat zwei Texteingabefelder für die Innen- und Außenmitarbeiter (idm_ID und adm_ID) und einen Button (doit) zum Aufruf des eigentlichen Erfassungsformulars, dann legst du unter das Ereignis Click folgendes
Private Sub doit_Click()
DoCmd.OpenForm "Erfassungsformular", acNormal, , , acFormAdd
End Sub
Im Ereignis "Beim Anzeigen" des Erfassungsformulars setzt du dann die Daten (gleichen Namen idm_ID und adm_ID) aus dem vorgeschalteten Formular folgendermaßen (bsp: idm_ID):
Private Sub Form_Current()
If IsNull(Me!idm_ID) Then
Me!idm_ID = Forms!frmMAauswahl!idm_ID
End If
End Sub
Der Wert wird lso nur dann gesetzt, wenn noch kein Wert im Feld setzt, damit verhinderst du gemachte Änderungen. Das kann nur ein kurzer Aufriss sein und ich hoffe er ging in die richtige Richtung.

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo Ralf,

die Sache mit dem Direktfenster ist wirklich was sehr Feines. Und jetzt, wo ich weiss, wie man es nutzt -> super!

Vielen Dank für Deinen Code, hab´s gleich getestet. Allerdings funktioniert´s leider so nicht, jetzt bekomme ich gar keinen Datensatz mehr angezeigt. Da ich nicht sicher war, ob Dein Code ins Hauptformular oder Unterformular muss, hab ich beides mal probiert, leider ohne Erfolg.

Aber ich probier auf dieser Basis mal weiter. Kann man hier in dem Forum auch ein Screenshot posten? Denn ein Bild sagt dann doch oft mehr als 1000 Worte :-)

Vielen Dank und Gruß
Torsten
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Torsten,

du kannst z.B. unter http://www.file-upload.net Bilder oder ganze MDBs bereitstellen und einfach den Link posten, funktioniert ganz gut.

Gruß
Ralf
...