Office: (Office 2010) VBA

Helfe beim Thema VBA in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Ich habe eine Tabelle die nur zwei Felder enthält. Einen pk als Autowert und einen Namen als Text. Ich habe ein Formular angelegt mit einem... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Andahari, 16. November 2014.

  1. VBA


    Hallo

    Ich habe eine Tabelle die nur zwei Felder enthält.
    Einen pk als Autowert und einen Namen als Text.

    Ich habe ein Formular angelegt mit einem Textfeld und einem Knopf.
    Wenn jemand auf den Knopf drückt soll ein neuer Datensatz angelegt werden, der Inhalt des Textfeldes in das Namensfeld des neuen Datensatzes geschrieben werden und der automatisch angelegte zugehörige Primärschlüssel soll in eine VBA Variable geschrieben werden.

    Bsp.:
    1. Textffeld enthält: Test
    2. Knopf wird gedrückt
    3. Neuer Datensatz wird angelegt: ID = 10; Name = Test
    4. der VBA Variablen x wird der Wert 10 zugewiesen

    Ich habe es so probiert:
    Dim SQL as String
    SQL = "INSERT INTO tbl_Beispiel (txt_Name) VALUES ('" & Me.Eingabefeld & "')"
    DoCmd.SetWarnings False
    DoCmd.RunSQL SQL
    fk = DLookup("Id_Beispiel", "tbl_Beispiel", "txt_Name= " & Me.Eingabefeld)

    funktioniert aber leider nicht.
    Kann mir jemand helfen?
    Ist ein dringendes Problem.

    mfg
    Andahari

    :)
     
    Andahari, 16. November 2014
    #1
  2. Ach guck, es funktioniert nicht, und es ist ein dringendes Problem *tongue.gif*
    Du hast oben beim SQL-Statement das Kriterium richtig (mit Anführungszeichen/Hochkomma) und unten beim DLookup nicht. Ich vermute mal, das wird es schon gewesen sein.
    maike
     
  3. Hallo,
    ich gehe noch einen Schritt weiter und behaupte das braucht man nicht. *grins

    Du erzeugst ja redundante Daten, in dem Du das Namenfeld doppelst.

    Was ist denn der Hintergrund des Vorhabens ?
     
    gpswanderer, 17. November 2014
    #3
  4. VBA

    Vielen Dank für deine Antwort, ich hätte mich wohl etwas weniger drastisch ausdrücken sollen. Da stimme ich dir zu.

    Dein Vorschlag löst das Problem allerdings nicht. Ich habe zuvor schon alles
    mögliche ausprobiert und habe es momentan so:

    Code:
    Der Code läuft auch fehlerfrei durch, allerdings nimmt fk immer den Wert "1" an. Völlig unabhängig davon wie der pk für den neuen datensatz ist.

    Edit: @gpswanderer
    Ich möchte jedesmal wenn der Knopf gedrückt wird in einer anderen Tabelle neue Datensätze nach einem festen Muster anlegen.
    Doch der pk von tbl_Beispiel muss dann in die andere Tabelle als fk eingetragen werden.
    Code:
     
    Andahari, 17. November 2014
    #4
  5. ID des zuletzt hinzugefügten Autowertes ermitteln
    Ob das auch mit den DoCmd-Befehlen von Dir funktioniert, weiß ich nicht.

    Wenn DLookup mehrere Treffer findet, nimmt es einen beliebigen, meist den ersten.
    Ein Name als Kriterium ist nicht sehr selektiv, oder gibt es da keine Müllers, Schmidts Lehmanns, ...
     
  6. Ich habe es mit CurrentDB.Execute getestet, wenn der Vergleichswert eindeutig ist, klappt es damit. Wenn allerdings, wie es jetzt aussieht, "Montag" mehrfach vorkommt, dann geht es wohl nur mit @@IDENTITY.
    maike
     
  7. Vielen Dank für die kompetente und schnelle Hilfe.
    Ich habe die Lösung die von ebs17 vorgeschlagen wurde implementiert und
    jetzt funktioniert es.
    Besser hätte Ich es mir nicht wünschen können.
    *top
     
    Andahari, 18. November 2014
    #7
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden