Zum Inhalt springen

datenfeld mit vba in tabelle speichern


Empfohlene Beiträge

Geschrieben

hab mal ein problem,

ich möchte aus ein access formular nur ein bestimmtes feld in eine tabelle speichern und dann gleich prüfen ob der eintrag schon vorhanden ist, dies möchte ich in vba realisieren.

bitte um eure hilfe, wenn möglich mit vba code

Geschrieben

Ich würde zuerst prüfen, ob der Eintrag vorhanden ist und dann diesen speichern... aber na ja, wie Du willst.


Dim rst as DAO.Recordset

Dim db as DAO.Database


Set db = CurrentDb

Set rst = db.OpenRecordset ("Meine Tabelle", dbOpenDynaset)


rst.AddNew

rst![Meine Tabellenspalte] = MeinTextfeld.Value

rst.Update


If Not rst.EOF Then

  rst.MoveFirst

End if


Do While Not rst.EOF 

  If rst![Meine Tabellenspalte] = MeinTextfeld.Value Then

     MsgBox "Das Dingen ist schon vorhanden!"

     Exit Do

  End if

  rst.MoveNext

Loop


db.Close

rst.Close

Set rst = Nothing

Set db = Nothing

Gruß

JayN

Geschrieben

Ich würde es dann so gestalten:


Dim rst as DAO.Recordset

Dim db as DAO.Database

Dim prüfzahl as Integer


Set db = CurrentDb

Set rst = db.OpenRecordset ("Meine Tabelle", dbOpenDynaset)


prüfzahl = 0




If Not rst.EOF Then

  rst.MoveFirst

End if


Do While Not rst.EOF 

  If rst![Meine Tabellenspalte] = MeinTextfeld.Value Then

     prüfzahl = 1

     Exit Do

  End if

  rst.MoveNext

Loop


If prüfzahl = 0 Then

  rst.AddNew

  rst![Meine Tabellenspalte] = MeinTextfeld.Value

  rst.Update

End if


db.Close

rst.Close

Set rst = Nothing

Set db = Nothing


Gruß

JayN

Geschrieben

ok, habs gerade in die tat umgesetzt mit guten hoffnungen, hat aber nicht so geklappt.

der kompiler meckert mit der fehlermeldung "Benutzerdefinierter Typ nicht definiert" und zeigt auf die zeile mit "Dim rst As DAO.Recordset" .

wie kann man das problem lösen??

gruß nostradamos

Geschrieben
Originally posted by Nostradamos

ich möchte aus ein access formular nur ein bestimmtes feld in eine tabelle speichern und dann gleich prüfen ob der eintrag schon vorhanden ist, dies möchte ich in vba realisieren.

1.) Variante für gebundenes Formular (Spalte sei numerisch):

_________________________________________________

Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim temp

temp = DLookup("Spalte", "Tabelle", "Spalte=" & Me!Formfeld.Value)

If temp <> "" Then

Cancel = True

End If

End Sub

__________________________________________________

2.) Variante für ungebundenes Formular (Spalte sei ebenfalls numerisch):

__________________________________________________

Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim temp

temp = DLookup("Spalte", "Tabelle", "Spalte=" & Me!Formfeld.Value)

If temp = "" Then

DoCmd.RunSQL "Insert into Tabelle(Spalte) values (" & Me!Formfeld.Value & ")"

End If

End Sub

__________________________________________________

Finde ich schön kurz und prägnant.

hth

Reinhold

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...