Daten in einem Formular laden

Hallo zusammen,

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?

Viele Grüße von Beate

Stopp!!!

das war zu viel Text und zu undeutlich!
Also nochmals deutlicher:

Grundlegend hast Du:

  • Eine Tabelle mit vorhandenen Daten
  • Ein Formular mit einer Suchabfrage der Materialnumer
    Diese zwei dinge sind Vorhanden?

Jetzt möchtest Du:

  • Einen Datensatz aus der Tabelle auslesen durch das Suchformular
  • Die Daten in das Formular einlesen, dann
  • Einen neuen Datensatz erstellen
  • Die Formulardaten im neuen Datensatz speichern.
  • Das Zufügen soll mit einem „EnterKey“ Ereigniss ablaufen.

Faxit: Du willst einfach einen Datensatz kopieren?

Ist das geschriebene richtig? Bitte Korrigier mich.
Ich komme da auf sieben Problemstellungen, die einzel betrachtet werden müssen.

Jetzt benötige ich noch eine Antwort:

  • Isr die Materialnummer ein Indiziertes Tabellenfeld, oder ein Schlüsselfeld?
  • Hast Du eine ander ID-Nummer als die Materialnummer?

Ich erwarte Deine Antwort
Grüsse Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sebastian,

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.

Ich warte auf deine Antwort
Viele Grüße von Beate

Die Suchfunktion
frmBasisdaten Basisdaten laden und Rauslesen und Anpassen.

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

DoCmd.OpenForm „frmIntro“

Form Öffnen
DoCmd.OpenForm „frmBasisdaten“

'Öffnet die Form Basisdaten

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

Enter Key Ereignis
http://mypage.bluewin.ch/reprobst/WordFAQ/Enter.htm

Noch Fragen?
Hallo

Gibt es da noch irgend welche Fragen?

Grüsse Sebastian