hallo,
ich habe folgendes problem.
ich will in aus textfelder(ungebunden) die inhalte in einer tabelle per Button click kopieren.
ich will das mit vba programm machen.
es geht um ein kleines projekt und zwar kopieren von bestimmten daten aus dem vorhanden datensätze.
die tabelle ist als unterformular dargestellt, und beinhaltet WerkzeugIDs und die dazugehörigen merkmalen.
in dieser Tabelle tauchen aber auch werkzeugIDs wo die merkmalen teilweise fehlen, besonders Vc und fz.
meine aufgabe ist :
ich muss die Vc und fz von einem andern ID kopieren und zu dem werkzeugID einfügen.
wo bin ich jetzt:
-ich habe so gemacht dass ich einen datensatz anclicke, Vc und fz in 2 textfelder mit der Benennung Vc und fz rüber kopiert...soweit gut :)
-ich habe ein code geschrieben, das mir die neue daten (jetzt aus felder Vc und fz) zur tabelle mit einem button click einfügt, leider funktioniert nicht :((
der Code schaut so aus:
Private Sub Datensatz_übertragen_Click()
Dim strSQL As String
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST ( TOOLID,CUTSPEED,FEEDPTOOTH, PROCEDURE, TOOLTECHNOPOS, TOOLTECHNOLISTPOS ) VALUES ('" & _
Me!txtTOOLID & "'," & _
Me!txtCUTSPEED & "," & _
Me!txtFEEDPTOOTH & ",'" & _
Me!txtPROCEDURE & "', " & _
Me!txtTOOLTECHNOPOS & " , " & _
Me!txtTOOLTECHNOLISTPOS & "),"
CurrentDb.Execute (strSQL)
End Sub
ein screenshot ist im anhang
ich brauche euere hilfe....
LG Youssef
Hallo,
Zitatleider funktioniert nicht
die Aussage ist ohne nähere Erklärungen über die Art und Weise des Nicht-Funktionierens bzw. Angabe von Fehlermeldungen wertlos.
Wenn du fehlende Daten ergänzen sollst, so brauchst du wohl eine Aktualisierungsabfrage und keine Anfügeabfrage.
Außerdem brauchst du ein Kriterium, um nur den gewünschten Datensatz zu ändern.
BTW:
Wo in deiner Abfrage findet man die Felder Vc und fz?
Hallo,
dass dort
http://forum.freeaccess.de/YaBB.pl?num=1430745949
kein Ergebnis für dich zustande kam, lag nicht an denen, die versucht haben dir zu helfen. Ausserdem sind das hier im wesentlichen die gleichen.
Hallo MaggieMay,
die Datensätze von Tabelle Filter(unten) als unterformular sind die von Tabelle TMS_TDM_TOOLTECHNOLIST.
Vc und fz sind CUTSPEED und FEEDPTOOTH. von Tabelle TMS_TDM_TOOLTECHNOLIST.
was meinst du mit :Außerdem brauchst du ein Kriterium, um nur den gewünschten Datensatz zu ändern...ich verstehe das leider nicht.
wie schauts aus mit einer Aktualisierungsabfrage!! wie geht das?
danke
LG Youssef
mir es noch was eingefallen:
ein Kriterium wie TOOLID zb. oder ??
hallo el_gomero,
es hat nicht mit den leute in andern Forum was zu tun, absolut gar nichtsssss.
Ich hatte nur ein Problem, dass wenn ich ein Code einfügen möchte , geht einfach nicht und zeigt mir ein " - " Zeichen.
LG Youssef
Hi,
eine Aktualisierungsabfrage könnte folgendermaßen aussehen:
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = " & Me!txtCUTSPEED & ", FEEDPTOOTH = " & Str(Me!txtFEEDPTOOTH) & " " & _
"Where TOOLID = " & Me!txtTOOLID
hi,
ich werde die Aktualisierungsabfrage bei der nächsten gelegenheit ausprobieren.
Vielen Dank
Lg
Youssef
Morgen MaggieMay:),
so schaut's aus mit dem Code jetzt:
Private Sub Button_Click()
Dim strSQL As String
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = " & Me!txtCUTSPEED & ", FEEDPTOOTH = " & str(Me!txtFEEDPTOOTH) & " " & _
"Where TOOLID = " & Me!txtTOOLID
CurrentDb.Execute (strSQL)
End Sub
bei der Ausführung des Codes habe ich eine Fehlermeldung
Laufzeit '3061'
1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben
bitte Hilfe :(
Lg
Youssef
Moin,
strings sind innerhalb des SQL-Statements zu maskieren, zB:
... FEEDPTOOTH = [color=red][b]'[/b][/color]" & str(Me!txtFEEDPTOOTH) & "[color=red][b]'[/b][/color] " & _ ...
hi,zeigt immer noch die gleiche Fehler, Debuggen zeigt auf CurrentDb.Execute (strSQL)??!!
Lg
Youssef
zuerst - deinen post #5 hab ich jetzt erst gesehen. Das Problem mit dem einfügen von Code hatte ich auch schon. Liegt an Schlüsselworten wie Select, Update usw...
Zu deinem aktuellen Prob - ggf hast du mehr Felder mit strings, die sind dann alle nach dem Beispiel zu maskieren.
hi ,
was heißt maskieren??
kannst du mich bitte villeicht das erklären.
LG
Youssef
hi
meinst du so :
Private Sub Button_Click()
Dim strSQL As String
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = '" & str(Me!txtCUTSPEED) & _
"', FEEDPTOOTH = '" & str(Me!txtFEEDPTOOTH) & _
"', PROCEDURE = '" & str(Me!txtPROCEDURE) & _
"', NAME = '" & str(Me!txtName) & "' " & _
"Where TOOLID = " & Me!txtTOOLID
CurrentDb.Execute (strSQL)
End Sub
wenn das alles Text ist, ja. Name ist ein sehr unglücklicher Bezeichner, weil für Access reserviert - solltest du umgehend ändern.
Private Sub Button_Click()
Dim strSQL As String
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = '" & str(Me!txtCUTSPEED) & _
"', FEEDPTOOTH = '" & str(Me!txtFEEDPTOOTH) & _
"', PROCEDURE = '" & str(Me!txtPROCEDURE) & "' " & _
"Where TOOLID = '" & Me!txtTOOLID
CurrentDb.Execute (strSQL)
End Sub
Fehlermeldung:
Laufzeitfehler '13'
Typen unverträglich
irgendwas stimmt nicht :(
CUTSPEED : Zahl in der Tabelle
FEEDPTOOTH :Zahl in der Tabelle
PROCEDURE :text in der Tabelle
TOOLID :text in der Tabelle
Private Sub Button_Click()
Dim strSQL As String
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = " & Me!txtCUTSPEED & _
"', FEEDPTOOTH = " & Me!txtFEEDPTOOTH & _
"', PROCEDURE = '" & str(Me!txtPROCEDURE) & "' " & _
"Where TOOLID = '" & str(Me!txtTOOLID)
CurrentDb.Execute (strSQL)
End Sub
immer noch die gleiche Fehlermeldung :((
Hallo,
bei Zahlen entfallen die Hochkomma. Und bei Text wird auch zum Schluss eines benötigt.
ZitatstrSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = " & Me!txtCUTSPEED & _
", FEEDPTOOTH = " & Me!txtFEEDPTOOTH & _
", PROCEDURE = '" & Me!txtPROCEDURE & "'" & _
" Where TOOLID = '" & Me!txtTOOLID & "'"
so funzt es und ist imho besser lesbar
strSQL = "Update TMS_TDM_TOOLTECHNOLIST " & _
"Set CUTSPEED = " & Me!txtCUTSPEED & ", " & _
"FEEDPTOOTH = " & Me!txtFEEDPTOOTH & ", " & _
"PROCEDURE = '" & str(Me!txtPROCEDURE) & "' " & _
"Where TOOLID = '" & str(Me!txtTOOLID) & "' "
immer noch die Gleiche Fehler : Laufzeit. '13' Typen unverträglich :((
die Fehlermeldung ist ja aussagekräftig ... bist du sicher, dass ToolID ein Text ist? Und warum wird Procedure in Text konvertiert?
bei mir ist der TOOLID bzw. PROCEDURE sicher als textdatentyp festgelegt.
in der Tabelle habe ich 3 Primärschlüssel vordefiniert...liegt das darin?
siehe Anhang
sollte nicht, du willst ja ein update, kein insert. Lass dir mal per debug.print das fertige Statement im Direktfenster ausgeben (ggf mit strg+g einschalten).
ich habe leider nicht verstanden was du meinst :(.
ich will eigentlich ungebundene Felder Inhalte in einer Tabelle einfügen, da wo der ToolID keine werte noch hat.
hast du vielleicht eine andere Vorgehensweise???
du willst also anfügen? Dann spielt der zusammen gesetzte PK schon eine Rolle. Zudem schreien die feldnamen Procedure00 bis ProcedureXX geradezu nach Normalisierung.
was ist PK ?
PK = PrimaryKey
Zitat von: el_gomero am Mai 07, 2015, 09:33:12strings sind innerhalb des SQL-Statements zu maskieren, zB:
... FEEDPTOOTH = [color=red][b]'[/b][/color]" & str(Me!txtFEEDPTOOTH) & "[color=red][b]'[/b][/color] " & _ ...
Ich hatte da die Str-Funktion eingesetzt, in der Annahme dass es sich bei "FEEDPTOOTH" um eine Kommazahl handelte. Zumindest konnte man das dem Screenshot entnehmen.
Gänsefüßchen sind dort fehl am Platz.
Bei Texten wird die Str-Funktion nicht benötigt.
Hallo,
hier würde sich der Einsatz eines FilterStringBuilders lohnen - vorausgesetzt man weiss welche Datentypen die Felder haben.
Siehe das CodeArchiv auf access-codelib.net.
Gruß Andreas
hi el_gomero,
wie schauts aus mit einer Anfügeanfrage aus kannst du mir bitte dabei weiter helfen
versuchs mal damit:
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST " & _
"( TOOLID,CUTSPEED,FEEDPTOOTH, PROCEDURE, TOOLTECHNOPOS, TOOLTECHNOLISTPOS ) " & _
"SELECT '" & Me!txtTOOLID & "'," & _
Me!txtCUTSPEED & "," & _
Me!txtFEEDPTOOTH & ",'" & _
"'" & Me!txtPROCEDURE & "', " & _
Me!txtTOOLTECHNOPOS & ", " & _
Me!txtTOOLTECHNOLISTPOS & ")"
du solltest aber versuchen zu verstehen, was du da tust. Zudem nochmal der dringende Hinweis auf ein anständiges Datenmodell unter Berücksichtigung der Normalisierungsregeln - sonst wirst du auf Dauer mit Access keinen Spass haben.
Hallo,
und grundsätzlich sollte man bei ungebundenen Form-Textfeldern sicherstellen, dass im Fall eines leeren Feldes (NULL) ein Ersatzwert mitgegeben wird, z. B. mit der nz()-Funktion....
Private Sub einfügen_Schnittdaten_neu_Click()
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST " & _
"( TOOLID,CUTSPEED,FEEDPTOOTH, PROCEDURE, TOOLTECHNOPOS, TOOLTECHNOLISTPOS ) " & _
"SELECT '" & Me!txtTOOLID & "'," & _
Me!txtCUTSPEED & "," & _
Me!txtFEEDPTOOTH & ",'" & _
"'" & Me!txtPROCEDURE & "', " & _
Me!txtTOOLTECHNOPOS & ", " & _
Me!txtTOOLTECHNOLISTPOS & ")"
End Sub
keine Fehlermeldung und nichts ist eingefügt worden.
das mit der Normalisierung habe ich nicht verstanden?
soll ich die restlichen leeren Felder von der Tabelle auch mit berücksichtigen??
in post 32 hat Franz geantwortet - in dessen Signatur sind Links und Tipps, die du lesen solltest. Wird zwar Zeit in Anspruch nehmen, die lohnt sich aber. Denn ohne diese Basics wird dein Projekt scheitern.
Hi,
Zitat von: Youssef am Mai 07, 2015, 14:27:30wie schauts aus mit einer Anfügeanfrage aus kannst du mir bitte dabei weiter helfen
ist das jetzt die schiere Verzweiflung die dich dazu treibt es mit einer Anfügeabfrage zu versuchen?
Wolltest du nicht ursprünglich leere Datenfelder in vorhandenen Datensätzen nachträglich füllen?
Und was das betrifft:
Zitatkeine Fehlermeldung und nichts ist eingefügt worden.
ohne Execute wird auch nichts ausgeführt.
Hallo MaggieMay,
danke dass du weiter mir helfen möchtest:). übrigens stimmt was du sagst.
Ich habe festgestellt , dass das Werkzeug(ID-Nummer) ohne mindestens einer von den Daten(CUTSPEED(Vc),FEEDPTOOTH(fz), PROCEDURE(Verfahren)...) in der Tabelle(TMS_TDM_TOOLTECHNOLIST) nicht gezeigt wird.
Wenn ich jetzt in das Programm TDM-System in die Eingabe Maske Technologiedaten in PROCEDURE irgendein Wort(zb. :Fräsen) schreibe, nachdem Aktualisieren erscheint Das neue Werkzeug in der Tabelle und zwar nur mit dieser Angabe (Fräsen) die andern Felder bleiben leer.
Das heißt ich muss ein Code schreiben, wenn ich das WerkzeugID eingebe mit den ausgewählten dinge(Vc,Fz...), in der Tabelle einfüge bzw. im TDM-System Technologiedatenfenster.
Leider kein Erfolg mit dem CODE .
Ich glaube dass die andern Felder in der Tabelle muss ich vielleicht berücksichtigen, ich meine wenn keine weitere Angaben da sind einfach mit NULL setzen, oder einfach was ich nicht brauche Null setzen.
LG
Youssef
Hallo,
ZitatIch habe festgestellt , dass das Werkzeug(ID-Nummer) ohne mindestens einer von den Daten(CUTSPEED(Vc),FEEDPTOOTH(fz), PROCEDURE(Verfahren)...) in der Tabelle(TMS_TDM_TOOLTECHNOLIST) nicht gezeigt wird.
Wenn Werkzeugnummer in Tabelle "Unbekannt" in einer 1:n-Beziehung zu Werkzeugnummer in Tabelle "TMS_TDM_TOOLTECHNOLIST" steht, so ist es logisch, dass ohne Eintrag in der untergeordneten Tabelle kein Datensatz erzeugt wird.
ZitatWenn ich jetzt in das Programm TDM-System in die Eingabe Maske Technologiedaten in PROCEDURE irgendein Wort(zb. :Fräsen) schreibe, nachdem Aktualisieren erscheint Das neue Werkzeug in der Tabelle und zwar nur mit dieser Angabe (Fräsen) die andern Felder bleiben leer.
Ebenfalls logisch. Was sollte denn wohl in den anderen Feldern stehen, wenn du nur im Feld PROCEDURE "Fräsen" eingibst?
ZitatDas heißt ich muss ein Code schreiben, wenn ich das WerkzeugID eingebe mit den ausgewählten dinge(Vc,Fz...), in der Tabelle einfüge bzw. im TDM-System Technologiedatenfenster.
? ? ? ???
Mir ist inzwischen völlig unklar, worum es überhaupt geht und meiner Ansicht nach macht es keinen Sinn, weitere Tipps zu geben ohne den Gesamtzusammenhang zu kennen und zu verstehen.
Wie sieht dein Tabellenkonzept aus und welche Beziehungen gibt es untereinander? Welche Formulare auf welcher Datenbasis werden eingesetzt?
Am besten wäre es wohl, du lädst eine Beispiel-DB mit ein paar Testdaten hoch, damit man sich das mit eigenen Augen anschauen und dir einen konkreten Lösungsvorschlag machen kann.
Hallo,
ändert sich was im Code " INSERT INTO...." ? wenn ich eine Tabelle mit ODBC Verknüpfung habe ?
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST (TOOLID,CUTSPEED,FEEDPTOOTH,PROCEDURE,TOOLTECHNOPOS,TOOLTECHNOLISTPOS)" & _
"VALUES (" & TOOLID & ",' " & _
str(Me!txtCUTSPEED) & " ',' " & _
str(Me!txtFEEDPTOOTH) & " '," & _
Me!txtPROCEDURE & ", ' " & _
str(Me!txtTOOLTECHNOPOS) & " ' , ' " & _
str(Me!txtTOOLTECHNOLISTPOS) & " '),"
CurrentDb.Execute (strSQL)
LG
Youssef
Hallo,
ob Access- oder ODBC-verknüpfte Tabelle sollte keinen Unterschied machen, nur müssen die Datentypen bei der Anfügeabfrage berücksichtigt werden, was wieder einmal nicht korrekt umgesetzt wurde.
Auch ist die Syntax der SQL-Anweisung insgesamt fehlerhaft.
Nach deiner o.g. Beschreibung (... (http://www.access-o-mania.de/forum/index.php?topic=20357.msg113657#msg113657)) müsste es folgendermaßen aussehen:
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST (TOOLID,CUTSPEED,FEEDPTOOTH,PROCEDURE,TOOLTECHNOPOS,TOOLTECHNOLISTPOS)" & _
"VALUES ('" & TOOLID & "', " & _
Str(Me!txtCUTSPEED) & ", " & _
Str(Me!txtFEEDPTOOTH) & ", '" & _
Me!txtPROCEDURE & "', '" & _
Me!txtTOOLTECHNOPOS & "', '" & _
Me!txtTOOLTECHNOLISTPOS & "')"
CurrentDb.Execute strSQL, dbFailOnError
wobei die Datentypen der Felder "TOOLTECHNOPOS" und "TOOLTECHNOLISTPOS" bisher wohl noch nicht genannt und ebenfalls als Text angenommen wurden.
Wenn du dir den generierten SQL-String mit Debug.Print ins Direktfenster ausgeben lässt, so kannst du das Ergebnis anschauen und eventuelle Fehler selbst erkennen. Du kannst auch den Code über die SQL-Ansicht einer neuen Abfrage testen, um genauere Fehlerhinweise zu erhalten.
Auch liefert der Parameter dbFailOnError der Execute-Methode eine brauchbare Fehlermeldung.
Hallo,
bei mir ist in der Tabelle, TOOLID als Primärschlüssel vordefeniert.
gibt es eine Möglichkeit , das TOOLID zu duplizieren trotz PS??
LG
Youssef
Hallo,
Zitatgibt es eine Möglichkeit , das TOOLID zu duplizieren trotz PS??
nein, das ist völlig ausgeschlossen.
Wahrscheinlich stimmt die ganze Tabellenstruktur nicht und es fehlt die TOOLID als Fremdschlüssel. Ein Fremdschlüssel lässt Duplikate zu.
Hi,
Zitatgibt es eine Möglichkeit , das TOOLID zu duplizieren trotz PS??
wozu soll das gut sein?
Wenn ich nicht irre, hast du auf die Nachfrage warum jetzt INSERT anstelle von UPDATE ausgeführt wird, noch nicht geantwortet.
Wie sieht es damit aus, was hast du
tatsächlich vor?
hi MaggieMay,
durch eine access Anwendung sollen der Datensatz in TDM-System(externe Datenbank) unter Technologiedaten angezeigt wird.(siehe Screenshot_1)
die Technologiedatenfenster besteht aus 2 Tabellen: TMS_TDM_TOOLTECHNOLIST und TMS_TDM_TOOLTECHNO.(siehe Screenshot_2)
Wenn ich jetzt den Datensatz in Technologiedaten anzeigen will, muss ich ich in den beiden Tabellen das WerkzeugID und mindestens 2 Felder in TMS_TDM_TOOLTECHNO bzw. Vc und fz in TMS_TDM_TOOLTECHNOLIST einfügen.
Die Tabellen sind in Access mit OBDC verknüpft, und man kann die Daten eintippen, es funktioniert ohne mekern.
Meine Aufgabe ist , automatisieren mit VBA.
LG
Youssef
Hi,
die Screnns
Mit meinen Worten gesagt, willst du also zwei (leere) Datenfelder eines (vorhandenen!) Datensatzes in Tabelle A mit den Werten aus Tabelle B füllen.
Ist das so korrekt?
Wenn ja, brauchst du logischerweise eine Aktualisierungsabfrage - aber soweit waren wir doch schon mal. :(
Lies dir doch selbst den ganzen Thread noch einmal komplett durch und stelle fest, woran genau du gescheitert bist.
PS:
Ehrlich gesagt kann ich mit deiner Beschreibung nicht wirklich klar und die Screenshots helfen mir da auch nicht weiter. Allerdings ist dort zu sehen, dass die TOOLID keineswegs eindeutig ist. Wenn du also in den gezeigten Tabellen etwas ändern willst, brauchst du einen eindeutigen Zugriffsschlüssel.
zum einen ist das korrekt.
alten Daten kopieren aufm neuen :).
es ist nicht so einfach das weiß ich :(( .
meine Idee war dass ich die Daten die ich brauche einfach kopieren erstmal in ungebundenen Felder und die neue werkzeugID per Hand eintippen(nur zu Visualisierung).
Das Kopieren habe ich geschaftt und zwar habe ein Unterformular erstellt durch ein simpel click fügt er mich die Daten die ich brauche sofort in den ungebunden Felder.
Die daten nun in den ungebundenen felder will ich per button click in TMS_TDM_TOOLTECHNOLIST einfügen.(also in der Tabelle will sie sehen)
wegen die Tabelle TMS_TDM_TOOLTECHNO kann ich nochmal das gleiche machen oder einfach eintippen .
sobald die beiden Tabellen mit den einträgen ausgefüllt, wird der Datensatz glaube ich gezeigt.
Es wäre einfacher, wenn du eindeutig und nachvollziehbar und
ganz konkret beschreiben würdest was du vorhast, also welche Datenfelder aus welcher Tabelle in welche Datenfelder in welcher Tabelle zu kopieren sind, und welche Zugriffsschlüssel dabei eine Rolle spielen, also wie der Datensatz mit den zu kopierenden Daten und der, der sie empfangen soll, zu identifizieren ist.
Ich meine, wir wären schon sehr nah dran gewesen, aber dann wurde alles wieder durcheinander gebracht.
PS:
Wieso müssen die Tabellen "TMS_TDM_TOOLTECHNO" und "TMS_TDM_TOOLTECHNOLIST" dieselben Daten enthalten?
Wieso muss überhaupt etwas von A nach B kopiert werden? (
aber ich glaube, das will ich nicht wirklich wissen ;))
Zitatmeine Idee war dass ich die Daten die ich brauche einfach kopieren erstmal in ungebundenen Felder und die neue werkzeugID per Hand eintippen(nur zu Visualisierung)
Ist das auf einem der Screenshots zu sehen?
hi,
Ich werde das nochmal genauer erklären bei der nächsten Gelegenheit.Vielen Dank, dass du dich drum kümmerst.
LG
Youssef
Hallo ,
ich habe folgendes Code zum einfügen in einer Tabelle:
Private Sub einfügen_Schnittdaten_neu_Click()
Dim strSQL As String
Dim dDatabase As Database
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST (TOOLID,CUTSPEED,FEEDPTOOTH,PROCEDURE,TOOLTECHNOPOS,TOOLTECHNOLISTPOS,IDTYPE)" & _
"VALUES (" & Me!txtTOOLID & ", '" & _
str(Me!txtCUTSPEED) & "','" & _
str(Me!txtFEEDPTOOTH) & "'," & _
Me!cboPROCEDURE & ", '" & _
str(Me!cboTOOLTECHNOPOS) & "' ,'" & _
str(Me!cboTOOLTECHNOLISTPOS) & "', 2);"
dDatabase.Execute strSQL
End Sub
Fehlermeldung:
Objektvariable oder with-blockvariable nicht festgelegt
kann mir jemanden weiter helfen
LG
Youssef
Hi,
du musst die Objektvariable vor Gebrauch folgendermaßen initialisieren:
Set dDatabase = CurrentDB
Bei einmaligem Gebrauch kannst du aber auch direkt CurrentDB verwenden.
PS:
Das Datenfeld TOOLID ist nicht mehr vom Typ Text? Ebenso PROCEDURE?!
Und CUTSPEED und FEEDPTOOTH keine Zahlen??
doch TOOLID ist ein TEXT
Texte sind in Hochkommata einzufügen und Zahlen nicht.
Aber das wurde bereits mehrfach erwähnt, denke ich.
ich habe nun mein Code geändert(wie du gesagt hast : "Texte sind in Hochkommata einzufügen und Zahlen nicht") und schaut nun so aus :
Private Sub einfügen_Schnittdaten_neu_Click()
Dim strSQL As String
Dim dDatabase As Database
Set dDatabase = CurrentDb
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST (TOOLID,CUTSPEED,FEEDPTOOTH,PROCEDURE,TOOLTECHNOPOS,TOOLTECHNOLISTPOS,IDTYPE)" & _
"VALUES ('" & Me!txtTOOLID & "', " & _
str(Me!txtCUTSPEED) & "," & _
str(Me!txtFEEDPTOOTH) & ",'" & _
Me!cboPROCEDURE & "', " & _
str(Me!cboTOOLTECHNOPOS) & " ," & _
str(Me!cboTOOLTECHNOLISTPOS) & ", 2);"
CurrentDb.Execute strSQL
End Sub
jetzt Fehlermeldung :
Syntaxfehler in der Insert Into-Anweisung
der IDTYPE feld(ganz am Schluß) soll immer der Wert 2 haben
Lass dir den generierten String mit Debug.Print strSQL ins Direktfenster ausgeben und schau ihn dir an.
Wenn du den Fehler nicht siehst, kannst du den Code auch über die SQL-Ansicht einer neuen Abfrage testen.
ich siehe kein Fehler:
INSERT INTO TMS_TDM_TOOLTECHNOLIST (TOOLID,CUTSPEED,FEEDPTOOTH,PROCEDURE,TOOLTECHNOPOS,TOOLTECHNOLISTPOS,IDTYPE)VALUES ('TEST', 250, .12,'Vollbohren', 1 , 2, 2);
wie komme ich auf SQL-Ansicht ?wie würde die neue Abfrage ausschauen ?
LG
Youssef
Gehe auf "Erstellen" -> "Abfrageentwurf", wähle keine Tabelle und gehe anschließend auf "SQL-Ansicht". Wenn du dort den kopierten Code eingibst und auf "Ausführen" gehst, kommt eine Fehlermeldung und es wird das Wort "PROCEDURE" markiert.
Hintergrund: Procedure ist ein reserviertes Wort und sollte nicht verwendet werden. Wenn du den Datenfeldnamen nicht ändern kannst, so musst du ihn in eckige Klammern setzen.
Hallo MaggieMay,
danke die Rückmeldung :-).
Ich habe grade dein Kommentar gelesen.
Ich habe letztes mal und ganz am Schluss des Feierabends den TOOLID und PROCEDURE spontan in eckige Klammern gesetzt, mir ist gelungen endlich mal die Daten einzufügen...freue mich schon :-)).
Ich bedanke mich herzlich für alle die mir dabei geholfen haben.
LG
Youssef