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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...