ich hab ein Problem mit einem Formular beim anlegen eines neuen Datensatzes. Und zwar möchte ich in diesem Formular einen neuen Datensatz eingeben. Dazu möchte ich eine Materialnummer in ein Feld eingeben und bei betätigen der Entertaste, sollen die Daten, die zu dieser Nummer schon in einer Tabelle stehen, in das Formular in die entsprechenden Felder geladen werden.Dieser Datensatz soll erhalten bleiben und mit der Änderung von den Daten soll ein neuer Datensatz (eben mit gleicher Materialnummer) entstehen. Wie kann ich das realisieren?
so undurchsichtig scheint es gar nicht gewesen zu sein, denn du hast alles richtig erfasst. Im Grunde könnte man sagen, dass ich den Datensatz kopieren möchte. Allerdings zwei drei Felder sollen im kopierten Datensatz geändert sein. Ich habe noch eine ID- Nummer. Die Materialnummer ist kein indiziertes Feld.
Datensatz suche mit FindFirst
Set recPasswordName = CurrentDb.OpenRecordset("SELECT TPasswort.* " & _
„FROM TPasswort WHERE(((TPasswort.Volumenbezeichnung)= '“ & vol & „’))“)
'TPasswort = Tabelle namens Passwort
'Volumenbezeichnung = Feld namens Volumenbezeichnung
'vol = Parameter in String Format
Do While True
With recPasswordName
On Error GoTo AddNewCB_Err:
’ Populate recordset.
.MoveLast
’ Find first record satisfying search string. Exit
’ loop if no such record exists with failure Window.
’ loop exit without error in case of value existing
.FindFirst „AnmeldeName = '“ & nam & „’“
FNext:
If Not .NoMatch Then
If !Volumenbezeichnung vol Then GoTo FNext
Werte aus Form in Tabelle Eintragen
Set rs = CurrentDb.OpenRecordset(„TCodes“)
With rs
.AddNew
!ZufallsCode = Str
If Me.tbAblaufdatum.Value „“ Then !Ablaufdatum = Me.tbAblaufdatum.Value
!Wertgutschein = Me.opbotWertgutschein.Value
!Wert = Me.tbWert.Value
!Währung = Me.comboxWährung.Value & Me.comboxWährung1.Value
!Prozentgutschein = Me.opbutProzentgutschein.Value
!Prozent = Me.tbProzent.Value
!Maximalbetrag = Me.tbMaximalbetrag.Value
!Sprache = Me.comboxSprache.Value
!ErsteltHD = vol
!ErstelltUser = nam
.Update 'Sehr wichtig! ist Speichern!
.Bookmark = rs.LastModified
End With
'!Feldnamen
'Me steht hier für die Form
rs.close
Daten aus Tabellen einfügen
Set recAbdeckplatteName = CurrentDb.OpenRecordset("SELECT TAbdeckplatte.* " & _
„FROM TAbdeckplatte ORDER BY TAbdeckplatte.Name“)
Do While True
With recAbdeckplatteName
’ Populate recordset.
.MoveLast
’ Find first record satisfying search string. Exit
’ loop if no such record exists with failure Window.
’ loop exit without error in case of value existing
.FindFirst „Name = '“ & Me.comboxName.Column(2) & „’“
If Not .NoMatch Then
Me.tbDimmensionTxB.Value = !DimmensionTxB
Me.tbEinbaulochgrösseTxBxH.Value = !EinbaulochgrösseTxBxH
Me.tbName.Value = !Name
Me.tbPlattenbeschichtung.Value = !Plattenbeschichtung
Me.tbPlattenDicke.Value = !PlattenDicke
Me.tbPlattenEckradius.Value = !PlattenEckradius
Me.tbPlattenFarbe.Value = !PlattenFarbe
Me.tbPlattenMaterial.Value = !PlattenMaterial
Me.tbSerie.Value = !Serie
Exit Do
End If
If .NoMatch Then
MsgBox "No records found with " & _
Me.comboxName.Column(2) & „.“, vbCritical, Error
Exit Do
End If
End With
Loop
'Wobei mit Me wieder eine Form gemeint ist