Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formular öffnen - nicht bei leerem Datensatz landen

Begonnen von ThinkPink, September 10, 2010, 17:22:40

⏪ vorheriges - nächstes ⏩

ThinkPink

Hallo Experten,
jedes Mal, wenn ich glaube, dass meine Datenbank endlich fertig ist, fallen mir Dinge ein, die noch fehlen und die ich dann nicht ganz hinbekomm.
Trotzdem hoff ich mal wieder, dass das meine letzte Frage hier im Forum ist...

Also:
Es gibt u.a. eine Tabelle unternehmen, eine Tabelle abteilungen und eine Tabelle mitarbeiter.
Jeder Mitarbeiter gehört zu einem Unternehmen, deswegen sind die Tabellen über u_id (Primärschlüssel in der Tab. unternehmen) verknüpft
Jede Abteilung gehört ebenfalls zu einem Unternehmen, deswegen sind die Tabellen auch über u_id verknüpft.
Die Tabellen mitarbeiter und abteilungen sind über a_id (Primärschl. in Tab. abteilungen) miteinander verknüpft.
Es gibt ein Formular mitarbeiter, in das man die Informationen zu den Mitarbeitern eingibt. Über ein Kombinationsfeld (kombi_unternehmen) muss man dann das entsprechenden Unternehmen auswählen.
Außerdem gibt es im Formular mitarbeiter ein Kombinationsfeld (kombi_abteilungen), über das man (falls vorhanden) eine Abteilung aussuchen kann, zu der der Mitarbeiter gehört. Es werden immer nur die Abteilungen zur Auswahl angeboten, die zu dem Unternehmen gehören, das in kombi_unternehmen gerade ausgewählt ist.
Und schließlich zu meinem Problem:
Es gibt einen Button "Abteilung bearbeiten", über den man das Formular abteilungen öffnen kann und es sollte dann eigentlich der Datensatz der Abteilung, die in kombi_abteilungen gerade ausgewählt ist, angezeigt werden, sodass man ihn bearbeiten kann. Allerdings öffnet dich das Formular immer mit einem leeren Datensatz und man muss einen Datensatz zurück gehen um beim gewünschten Datensatz zu landen..und ich versteh nicht warum...
Das ist mein Code:

Private Sub Befehl73_Click()

On Error GoTo Err_Befehl73_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim ID As Long, strName As String

    ID = Me!kombi_unternehmen
    strName = Me!kombi_unternehmen.Column(1)


    stDocName = "abteilungen"
   
    stLinkCriteria = "[a_id]=" & Me![kombi_abteilungen]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
   
    Forms!abteilungen!txtID = ID
    Forms!abteilungen!txtName = strName

Exit_Befehl73_Click:
    Exit Sub

Err_Befehl73_Click:
    MsgBox Err.Description
    Resume Exit_Befehl73_Click
   
End Sub


Vielleicht sollte ich noch dazu sagen, dass es im Formular abteilungen ein Feld gibt, in dem der Namen des Unternehmens angezeigt wird, zu dem die Abteilung gehört (also das Unternehmen, das in kombi_unternehmen gerade ausgewählt ist).

Ich wäre sehr glücklich, wenn mir hier nochmal jemand helfen könnte....is bestimmt (hoff ich) nur ne ganz kleine Änderung.
Es ist auch nicht so eilig - bin erst Montag wieder im Büro.

Viele Grüße und schönes Wochenende!
Kerstin

DF6GL

Hallo,

da gibt es mehrere  Möglichkeiten (wobei ich den Eindruck habe, dass die Datenaufbereitung/bearbeitung von hinten aufgezäumt wird...)


1) In Me!kombi_abteilungen.column(0) steht ein Wert, der nicht in Spalte  a_id  existiert.
2) Das Form-Daten-Eigenschaft "Daten eingeben" steht auf Ja.
3) In Form_Open, bzw. Form_Load-Ereignis steht Code, der auf einen neuen DS positioniert.
4) ...

ThinkPink

Vielen Dank,
ich hab mein Problem jetzt lösen können:)
Im Ereignis beim Laden stand tatsächlich acNewRec...das hab ich jetzt ins Click-Ereignis zu einem anderen Button gesetzt (mit dem man das Formular öffnet, um ein neues Unternehmen hinzuzufügen) und die Sache funktioniert:)))