Okay, folgendes Problem stellt sich mir in den Weg:
Ich habe eine Tabelle in der meine Daten stehen, die Tabelle „Rollen“. Die Problemrelevanten Felder sind: Status und Position.
Status = hat entweder den Wert: „Eingebaut“ oder „Lager“
Position = wenn der Status „Eingebaut“ ist hat der Datensatz eine spezifische Positionsnummer. ist der Status „Lager“ so muss der Wert auf Null gesetzt werden.
Da das ganze Anwenderfreundlich sein soll mach ich das ganze mit Formularen. Ich hab das Formular „Rollen_Im_Lager“ und „Rollen_Im_Ofen_Auswählen“. Ich habe pro Datensatz in meinem Formular „Rollen_Im_Lager“ eine Schaltfläche zum tauschen der aktuellen Rolle mit einer im „Ofen“ befindlichen. Die Schaltfläche öffnet daher das Formular „Rollen_Im_Ofen_Auswählen“. Jetzt sollen der Status der Lagerrolle auf „Ofen“ und der Status der Ofenrolle auf „Lager“ gesetzt werden - da hab ich hingekriegt.
ABER(und das is das was ich nicht schaffe) es soll auch der Wert des Feldes „Position“, der Rolle die aus dem „Ofen“ soll, ausgelesen und zwischengespeichert werden. Dann muss der Wert dieser Rolle auf Null gesetzt werden und die Rolle die in den „Ofen“ rein soll bekommt dann den Wert der zwischengespeichert wurde in ihr Feld „Position“.
Kurz gesagt: Die sollen ihre Position und Status wie beschrieben tauschen.
Hier mal der Code:
Formular „Rollen_Im_Lager“:
Private Sub btn_InDenOfen_Click()
Dim Speicher As Long
Dim Inpuput As String
Dim Tausch As Integer
Dim ADOCnn As ADODB.Connection
Set ADOCnn = CurrentProject.Connection
Dim TabRollen As ADODB.Recordset
Set TabRollen = New ADODB.Recordset
TabRollen.Open „Rollen“, Application.CurrentProject.Connection, adOpenDynamic, adLockOptimistic
With TabRollen
Me!Status.Requery
Me!Status.SetFocus
If Me!Waren_Nr = „0“ Then
GoTo Ende
Else
Speicher = Me!Waren_Nr
Inpuput = „Ofen“
DoCmd.OpenForm „Rollen_Im_Ofen_Auswählen“, acNormal, , , , acWindowNormal
Form! „060_FBA7_RollenImLager.Position“ = „Form_Rollen_Im_Ofen_Auswählen.Position“
ADOCnn.Execute „UPDATE Rollen SET Status = '“ & Inpuput & „’ WHERE Waren_Nr=“ & Speicher
‚ADOCnn.Execute „UPDATE Rollen SET Position = '“ & Tausch & "‘ WHERE Waren_Nr=" & Speicher
End If
End With
Ende:
TabRollen.close
Me!Status.Requery
Me!Status.SetFocus
End Sub
Formular „Rollen_Im_Ofen_Auswählen“:
Private Sub btn_InDenOfen_Click()
Dim Speicher As Long
Dim Inpuput As String
Dim ADOCnn As ADODB.Connection
Set ADOCnn = CurrentProject.Connection
Dim TabRollen As ADODB.Recordset
Set TabRollen = New ADODB.Recordset
TabRollen.Open „Rollen“, Application.CurrentProject.Connection, adOpenDynamic, adLockOptimistic
With TabRollen
Me!Status.Requery
Me!Status.SetFocus
If Me!Waren_Nr = „0“ Then
GoTo Ende
Else
Speicher = Me!Waren_Nr
Inpuput = „Lager“
ADOCnn.Execute „UPDATE Rollen SET Status = '“ & Inpuput & „’ WHERE Waren_Nr=“ & Speicher
End If
End With
Ende:
TabRollen.close
Me!Status.Requery
Me!Status.SetFocus
DoCmd.close
DoCmd.OpenForm „Rollen_Im_Lager“
DoCmd.close
DoCmd.OpenForm „Rollen_Im_Lager“
End Sub
Hat Jemand eine Idee wie ich aus dem Formular „Rollen_Im_Lager“ auf das Feld „Position“ im Formular „Rollen_Im_Ofen_Auswählen“ zugreifen kann? (die variable „Tausch“ hatte ich dafür vorgesehen)
Danke schon mal im Vorraus
gruß Maurice