Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Kopieren in Tabelle

Begonnen von Youssef, Mai 05, 2015, 15:31:52

⏪ vorheriges - nächstes ⏩

Youssef

hi el_gomero,

wie schauts aus mit einer Anfügeanfrage aus kannst du mir bitte dabei weiter helfen

el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

DF6GL

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

Youssef

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?


Youssef

soll ich die restlichen leeren Felder von der Tabelle auch mit berücksichtigen??

el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MaggieMay

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.
Freundliche Grüße
MaggieMay

Youssef

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

MaggieMay

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.

Freundliche Grüße
MaggieMay

Youssef

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

MaggieMay

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 (...) 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.
Freundliche Grüße
MaggieMay

Youssef

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

MzKlMu

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.
Gruß Klaus

MaggieMay

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?
Freundliche Grüße
MaggieMay

Youssef

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