Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Neuen Eintrag in leere Tabelle (mit ID "Vergabe")
zurück: Zugriff mit Recordset auf Datenbank weiter: Per Mausklick nach Feld verlinken Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
FiBo
Gast


Verfasst am:
04. Feb 2009, 11:13
Rufname:

Neuen Eintrag in leere Tabelle (mit ID "Vergabe") - Neuen Eintrag in leere Tabelle (mit ID "Vergabe")

Nach oben
       Version: Office 2007

Guten Tag.

Ich grübel nun schon einige Tage über einem Problem. Nutze normalerweise nur Access als solches und habe mit Visual Basic wenig Erfahrung. Wollte aber mal was probieren: (Alles sehr vereinfacht, aber ich hoffe verständlich)
Ich habe eine leere Tabelle "tblNutzer" mit den Feldern "NutzerID", "NutzerVName" und "NutzerName".
Ebenfalls habe ich ein Formular mit zwei Feldern: "EingabeVname" und "EingabeName, sowie einem Button "NutzerSpeichern".
Wenn ich auf den Button klicke möchte ich dass in der Tabelle (tblNutzer) zum letzten Datensatz gegangen wird. Wenn "NutzerID" Null ist (was er ja ganz zum Anfang ist) soll eine 1 gesetzt werden. Wenn nicht, soll der aktuelle wert gespeichert werden("letzterWert"), einen Datensatz weiter gegangen werden ( welcher ja eigentlich noch nicht da ist, deswegen bin ich mir auch nicht sicher ob das überhaupt so geht) und "NutzerID" auf "letzterWert"+1 setzen.

Nun habe ich schon im Internet gesucht aber leider nichts genaues gefunden. Habe mir aus ähnlichen Problemen versucht etwas zusammenzubasteln, aber so richtig funktioniert es noch nicht.
Code:
Private Sub NutzerSpeichern_Click()
    Dim db As DAO.Database
    Dim rsBesitzer As DAO.Recordset
    Dim strSQL As String
    Dim letzter
   
    Set db = CurrentDb
    strSQL = "SELECT BesitzerID FROM tbl_Besitzer"
    Set rsBesitzer = db.OpenRecordset(strSQL)
    rsBesitzer.MoveLast                   ' FEHLER: "Kein aktueller Datensatz"
    If rsBesitzer!BesitzerID Is Null Then
        rsBesitzer.Edit
        rsBesitzer!BesitzerID = 1
        rsBesitzer.Update
      Else
        letzter = rsBesitzer!BesitzerID
        rsBesitzer.MoveNext
        rsBesitzer.Edit
        rsBesitzer!BesitzerID = letzter + 1
        rsBesitzer.Update
    End If
    rsBesitzer.Close
End Sub
Vielleicht kann mir hier jemand helfen oder aber den Wind aus den Segeln nehmen, wenn sowas gar nicht funktionieren sollte.

Mit freundliche Grüße
FiBo
Nachtrag: FiBo am 04. Feb 2009 um 13:18 hat folgendes geschrieben:
Ich habe eine mögliche Lösung gefunden, allerdings bezweifel ich ich das das so optimal ist. Ich musste ein bisschen "tricksen". Ich habe bei der ersten "NutzerID" einfach mal eine "0" eingetragen und dann folgenden code verwendet:
Code:
Private Sub NutzerSpeichern_Click()
    Dim db As DAO.Database
    Dim rsBesitzer As DAO.Recordset
    Dim strSQL As String
    Dim letzter As Integer
   
    Set db = CurrentDb
    strSQL = "SELECT * FROM tbl_Besitzer"
    Set rsBesitzer = db.OpenRecordset(strSQL)
    If Not rsBesitzer.EOF Then rsBesitzer.MoveLast
    If rsBesitzer!BesitzerID = "0" Then
        rsBesitzer.Edit
        rsBesitzer!BesitzerID = "1"
        rsBesitzer!BesitzerVName = Me!EingabeVorname
        rsBesitzer!BesitzerName = Me!EingabeNname
        rsBesitzer.Update
        rsBesitzer.Close
      Else
        letzter = rsBesitzer!BesitzerID
        rsBesitzer.MoveNext
        rsBesitzer.AddNew
        rsBesitzer!BesitzerID = letzter + 1
        rsBesitzer!BesitzerVName = Me!EingabeVorname
        rsBesitzer!BesitzerName = Me!EingabeNname
        rsBesitzer.Update
        rsBesitzer.Close
    End If
End Sub
Habe natürlich immer offene Ohren für bessere Vorschläge.
MfG FiBo
Willi Wipp
Moderator


Verfasst am:
04. Feb 2009, 19:26
Rufname:
Wohnort: Raum Wiesbaden


Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe') - Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe')

Nach oben
       Version: Office 2007

Hi FiBo,

bin mir nicht ganz sicher, aber eventuell so
Code:
Private Sub NutzerSpeichern_Click()
    Dim db As DAO.Database
    Dim rsBesitzer As DAO.Recordset
    Dim strSQL As String
    Dim letzter As Integer
   
    Set db = CurrentDb
    strSQL = "SELECT * FROM tbl_Besitzer ORDER BY BesitzerID"
    Set rsBesitzer = db.OpenRecordset(strSQL)
    If rsBesitzer.BOF And rsBesitzer.EOF Then
        letzter = 1
      Else
        rsBesitzer.MoveLast
        letzter = Nz(rsBesitzer!BesitzerID) + 1
    End If
    rsBesitzer.AddNew
    rsBesitzer!BesitzerID = letzter  '<== FEHLTE!
    rsBesitzer!BesitzerVName = Me!EingabeVorname
    rsBesitzer!BesitzerName = Me!EingabeNname
    rsBesitzer.Update
    rsBesitzer.Close
    Set rsBesitzer = Nothing
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 05. Feb 2009, 15:38, insgesamt 3-mal bearbeitet
FiBo
Gast


Verfasst am:
05. Feb 2009, 09:34
Rufname:

AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe& - AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe&

Nach oben
       Version: Office 2007

Hallo Willi,

danke schonmal für die Antwort.
allerdings bekomme ich eine Fehlermeldung an folgender Stelle:
Code:
        letzter = rsBesitzer!BesitzerID + 1
der Fehler lautet da:
Zitat:
Laufzeitfehler '94' Unzulässige Verwendung von Null
Ich nehme an das dieser Fehler auftritt weil rsBesitzer!BesitzerID Null ist und da eine Addition mit 1 nicht möglich ist ?!

MfG FiBo
Willi Wipp
Moderator


Verfasst am:
05. Feb 2009, 13:39
Rufname:
Wohnort: Raum Wiesbaden

Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe') (II) - Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe') (II)

Nach oben
       Version: Office 2007

Hi FiBo,

ich bin schon davon ausgegangen das Du den leeren DS loeschst. Sonst mach das Ganze ja keinen Sinn!
Du willst doch sicher nicht mehrere Eintraege mit 1 zu lassen, nur weil jemand wieder einen Eintrag mit Null eingefuegt hat?
Habe es Oben trotzdem mal abgefangen!
Siehe auch Problem bei der Autowert-Vergabe (FnlngGet_NextFreeNr)

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
FiBo
Gast


Verfasst am:
05. Feb 2009, 14:59
Rufname:

AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe&quo - AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe&quo

Nach oben
       Version: Office 2007

Hallo Willi,

ich steh grad bisschen auf dem Schlauch.
Das komische ist ja dass ich alle Datensätze gelöscht habe, die Tabelle ist also wieder leer.
Mit der 0 hast du natürlich Recht, wäre schon vorteilhaft wenn ich die nicht benötigen würde.
Mit deiner abgeänderten Version kommt auch der Fehler nicht mehr, allerdings vergibt er auch keine ID mehr.
"BesitzerID" bleibt leer, aber Vorname und Nachname übernimmt er.

MfG FiBo
Willi Wipp
Moderator


Verfasst am:
05. Feb 2009, 15:39
Rufname:
Wohnort: Raum Wiesbaden

Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe') (III) - Re: Neuen Eintrag in leere Tabelle (mit ID 'Vergabe') (III)

Nach oben
       Version: Office 2007

Hi FiBo,

ehmm, ja, was soll ich sagen, ....
Vielleicht hilft es ja wenn wir den Wert auch zuweisen Very Happy (Oben angepasst)

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
FiBo
Gast


Verfasst am:
05. Feb 2009, 15:47
Rufname:


AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe& - AW: Neuen Eintrag in leere Tabelle (mit ID "Vergabe&

Nach oben
       Version: Office 2007

Ahhhh.... ich trottel.
Ich weiß woran es lag, es fehlte einfach noch eine Zeile.
Code:
    Dim db As DAO.Database
    Dim rsBesitzer As DAO.Recordset
    Dim strSQL As String
    Dim letzter As Integer
   
    Set db = CurrentDb
    strSQL = "SELECT * FROM tbl_Besitzer ORDER BY BesitzerID"
    Set rsBesitzer = db.OpenRecordset(strSQL)
    If rsBesitzer.BOF And rsBesitzer.EOF Then
        letzter = 1
      Else
        rsBesitzer.MoveLast
        letzter = Nz(rsBesitzer!BesitzerID) + 1
    End If
    rsBesitzer.AddNew
    rsBesitzer!BesitzerID = letzter '<== Hier ################################
    rsBesitzer!BesitzerVName = Me!EingabeVorname
    rsBesitzer!BesitzerName = Me!EingabeNname
    rsBesitzer.Update
    rsBesitzer.Close
    Set rsBesitzer = Nothing
    Set db = Nothing
Ich danke vielmals!
Sieht doch schon wesentlich übersichtlicher aus als meine Lösung.
Nochmal danke!
MfG FiBo
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Eingabeaufforderung für "Tabelle umbenennen" 1 DJK_2000 823 06. Jul 2004, 11:05
Gast Eingabeaufforderung für "Tabelle umbenennen"
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage bei Tabelle mit leeren Zellen (?) 2 Gast 1045 23. Jun 2004, 15:14
lothi Abfrage bei Tabelle mit leeren Zellen (?)
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: Als Kriterium nur leere Felder 2 Günni 6089 22. Jun 2004, 09:39
Günni Abfrage: Als Kriterium nur leere Felder
Keine neuen Beiträge Access Tabellen & Abfragen: bei leeren Textfelder in Tabelle ein "-" einfügen 10 Henri 843 21. Jun 2004, 15:48
Henri bei leeren Textfelder in Tabelle ein "-" einfügen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle mit Beziehung zu anderen Tabellen updaten - wie ? 4 miredoju 2684 15. Jun 2004, 10:24
miredoju Tabelle mit Beziehung zu anderen Tabellen updaten - wie ?
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle von Excel importieren 1 Sonnenschein 2640 15. Jun 2004, 06:57
stpimi Tabelle von Excel importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Bestehende Tabelle aufteilen - Eure Kommentare? 1 masta25 1040 17. Mai 2004, 21:19
mabe38 Bestehende Tabelle aufteilen - Eure Kommentare?
Keine neuen Beiträge Access Tabellen & Abfragen: aus einer Tabelle m.mehr.Spalten neue Tab mit 1 Spalte erste 4 Gingi 860 11. Mai 2004, 16:24
Gingi aus einer Tabelle m.mehr.Spalten neue Tab mit 1 Spalte erste
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle sichern 5 alfikoe 946 05. Mai 2004, 20:26
lothi Tabelle sichern
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert in bestehende Tabelle 1 Gingi 729 23. Apr 2004, 11:45
mabe38 Autowert in bestehende Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: einträge aus tabelle in formular anzeigen u. speichern 1 gast 1161 25. März 2004, 09:33
Willi Wipp einträge aus tabelle in formular anzeigen u. speichern
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum