Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB: SQL: Datensatz verschieben

Empfohlene Antworten

Veröffentlicht

Hi,

gibt es eine einfache Möglichkeit (mit SQL?), Daten innerhalb einer Datenbank von einer Tabelle in eine andere Tabelle zu verschieben? Die Tabellen sind identisch aufgebaut. Sie haben lediglich andere Namen...

Danke für eure Hilfe,

Chris;-)

hi,

welches dbms?

wenn subselects erlaubt sind:

insert into ziel_tab (select test1 from quell_tab)

fuegt alle datensaetze von tabelle quell_tab in ziel_tab ein. (im subselect kann natuerlich auch noch eingeschraenkt werden.)

danach bei bedarf loeschen von quell_tab

hoffe, es hilft...

Hi,

Access 97.... Ich hoffe es klappt... Werde es gleich wenn ich heim komme testen..

danke,

chris;-)

Hallo,

fehlt hier noch was? Ich habe es in Access direkt ausprobiert. Da geht es.

Warum tut sich hier nichts? Wäre nett, wenn mir da jemand schnell helfen könnte...

DANKE!

Code:

ID = txt_ID.Text

datMoldausschuss.RecordSource = "INSERT INTO Geloescht SELECT * From Moldausschuss WHERE ID = " & ID & ";"

datMoldausschuss.RecordSource = "DELETE * From Moldausschuss WHERE ID = " & ID & ";"

Viele Grüße,

Chris;-)

hi,

ein tip ins blaue: lass die semikolen am ende der statements weg...

leider bringt das immer noch nichts..

Der Datensatz ist nach der Ausführung unverändert in der Tabelle Moldausschuss und die Tabelle Geloescht ist nach wie vor leer.. =(

Sonst noch Vorschläge oder Geistesblitze? Mir sind die mittlerweile ausgegangen...

Gruß,

Chris;-)

hi chris,

hat sich was ergeben??

Originally posted by ChrisDaHub

ID = txt_ID.Text

datMoldausschuss.RecordSource = "INSERT INTO Geloescht SELECT * From Moldausschuss WHERE ID = " & ID & ";"

datMoldausschuss.RecordSource = "DELETE * From Moldausschuss WHERE ID = " & ID & ";"

Die RecordSource-Eigenschaft (übersetzt auch "Datenherkunft") eines Objektes dient dazu, dem Objekt Daten zur Verfügung zu stellen. Für Aktionsabfragen wie INSERT, DELETE und UPDATE ist diese Eigenschaft nicht geeignet. Du solltest mit der EXECUTE-Methode Deines Connection- oder Database-Objekts arbeiten. Sprich:

MyConnection.execute "INSERT INTO..."

MyConnection.execute "DELETE * ..."

Dann sollte es auch mit der Funktion klappen! ;)

ICQ

Hallo,

nein, leider bin ich noch nicht weier gekommen. Ich habe nach der Methode "Execute" gesucht, aber nichts gefunden. Ich verwende das ganz normale Data-Objekt um mit der Datenbank zu arbeiten.

Wie funktioniert das da?

Habe ich irgendwie die Möglichkeit, Daten an eine Access-Interne Abfrage zu übergeben? Dann könnte ich da ja die Datensatz-ID hin übergeben und so beide Abfragen ausführen.

Oder gibt es noch eine Möglichkeit?

Jetzt wird es echt langsam eng.. Eigentlich hätte ich das Programm letzte Woche fertig haben müssen =(

Gruß,

Chris

Originally posted by ChrisDaHub

Ich habe nach der Methode "Execute" gesucht, aber nichts gefunden.

Mist, ich hab gerade kein VB hier, aber ich versuch mal, ob ich's vielleicht so hinbekomme. ;)

Du musst in Deinem Projekt doch irgendwo ein Connection-Objekt haben, wenn mich nicht alles täuscht. Dieses Connection-Objekt besitzt die Execute-Methode!

Sonst poste doch mal ein wenig Source, dann schauen wir mal. ;)

ICQ

Hi ICQ,

ich habe in meiner Komponentenliste kein Connection-Objekt gefunden.

Meinst du vielleicht das Data-Objekt? Das hat keine Execute Methode...

Wenn du möchtest, schicke ich dir das gesamte Projekt mal rüber.. (via eMail)..

Vielleicht kommst du damit besser klar als ich.

Schick mir einfach deine eMail-Adresse per PM.

Gruß,

Chris

Hi,

habe noch ein bischen gestöbert und dann doch eine Execute-Methode gefunden...

datMoldausschuss.Database.Connection.Execute ("INSERT INTO Geloescht SELECT * From Moldausschuss WHERE ID = '" & ID & "'")

leider bekomme ich hier nun eine Fehlermeldung:

Laufzeitfehler 3251 (Das Object oder der Provider kann den angeforderten Vorgang nicht ausführen)

Was mach ich denn nun schon wieder falsch???

Gruß,

Chris

hi chris,

versuch es doch mal so herum:

private sub copy()

dim conn as adodb.connection


set conn = new adodb.connection

'sieh dir noch mal die parameter fuer die open-methode an

call conn.open("provider", "user", "password")   

if(not conn.state = adstateopen)then

   call msgbox("datenbank-verbindung konnte nicht geoeffnet werden..")

   exit sub

end if

'ausfuehren der beiden statements

call conn.execute("insert into ...")

call conn.execute("delete from ...")

end sub

ist ungetested und bei mir nicht ausgefuehrt worden, ... also keine garantie :-)

hoffe, es hilft...

Hi,

hab mir die Parameter für die Open-Methode angesehen und festgestellt, dass ich es nicht so ganz verstehe... Besonders das mit dem ConnectionString..

Ich habe jetzt mal deinen Code in eine Funktion kopiert und versucht, diesen auszuführen. Leider bekomme ich bei conn.open einen Laufzeitfehler. Über diesen Fehler habe ich nirgends was gefunden. Es ist der Fehler 3748: (Connection was denied. New connection you requested has different characteristics than the one already in use) Was will der mir damit sagen? Was mache ich schon wieder falsch?

Ich habe mal den Code der Function angehängt:

Public Function MoulDelete(ByVal ID As Integer)

Dim conn As adodb.Connection

Set conn = New adodb.Connection

'So... und hier gibt es den Fehler... Wie ist denn die Syntax? In der Hilfe steht nicht viel darüber...

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;File Name=\\degwpcg5\C$\MOLDAUSSCHUSS\MOLDAUSSCHUSS.MDB", "Admin", "passwoertelein"

If (Not conn.State = adStateOpen) Then

Call MsgBox("datenbank-verbindung konnte nicht geoeffnet werden..")

Exit Function

End If

'ausfuehren der beiden statements

Call conn.Execute("insert into ...")

Call conn.Execute("delete from ...")

End Function

Kann mit bitte jemand helfen?

Gruß,

Chris

Hi,

hat sich erledigt. Ich hab das Problem jetzt anderst gelöst.

Ich öffne beide Tabellen mit je einem DATA-Objekt.

Im Formular habe ich für jedes Feld pro Tabelle ein Textfeld erstellt und diese mit allen Feldern in den Tabellen verbunden. Jetzt hat jedes Feld in beiden Tabellen ein zugeordnetes Textfeld. So... Wenn ich nun zu dem DS hin navigiert habe, erstelle ich einen neuen DS in Tabelle2 (.AddNew) und kopiere alle Inhalte der Textfelder von Tabelle1 ind die Textfelder von Tabelle2. Danach noch datTabelle2.Recordset.Update und datTabelle1.Recordset.delete.....

So einfach kanns gehn.. Danke aber trotzdem an alle, die mir geholfen haben.

Gruß,

chris

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.