Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kopieren in Tabelle

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

⏪ vorheriges - nächstes ⏩

Youssef


MaggieMay

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

Youssef

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.

MaggieMay

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

Youssef

hi,
Ich werde das nochmal genauer erklären bei der nächsten Gelegenheit.Vielen Dank, dass du dich drum kümmerst.
LG
Youssef

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

MaggieMay

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

Youssef

doch TOOLID ist ein TEXT

MaggieMay

Texte sind in Hochkommata einzufügen und Zahlen nicht.
Aber das wurde bereits mehrfach erwähnt, denke ich.
Freundliche Grüße
MaggieMay

Youssef


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

Youssef

der IDTYPE feld(ganz am Schluß) soll immer der Wert 2 haben

MaggieMay

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

Youssef

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

MaggieMay

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

Youssef

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