Mit INSERT INTO schreiben von Daten in access-Datenbank
Ich versuche, mithilfe der INSERT INTO-Befehl zum schreiben von Daten in eine Access 2007-Datei aus einer excel 2010 Datei. Die Daten, die in der "NewProj" Arbeitsblatt in der Tool_Selector.xlsm excel-Datei und es muss geschrieben werden, um die "Tool_Database.mdb" - Datei, aber leider habe ich mehrere verschiedene Fehler.. Dies ist, was ich derzeit haben
Sub AddData()
Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Tools_Dev\_Tool_Selector\Tool_Selector.xlsm;Extended Properties=Excel 8.0;" _
& "Persist Security Info=False"
Cn.Execute "INSERT INTO Project_Names IN 'D:\Tool_Database\Tool_Database.mdb' SELECT * FROM Worksheets("NewProj").Range("A2").Value"
Cn.Close
Set Cn = Nothing
End Sub
Ich habe den code aus diesem thread: Einfügen von Daten aus Excel in Access mit VBA
Brauche ich nur zum übertragen der Wert der einzelnen Zellen.
Dank.
Ich weiß, dass dieser Cn.Execute "INSERT INTO Project_Names 'D:\Tool_Database\Tool_Database.mdb' SELECT * FROM Worksheets("NewProj").Range("A2").Wert" ist, wo ist Pausen... Wie kann ich wählen Sie eine bestimmte Zelle oder Zeile von Zellen?
Sehen, ob das hilft: stackoverflow.com/questions/5122582/...
phänomenal, du bist ein guter Mensch.
Wenn ich mit diesem code bekomme ich Laufzeitfehler 424 Objekt Erforderlich Auf diese Zeile: strSQL = "INSERT INTO Project_Names (Proj_Num)" & "VALUES (" & NewProj.[A1] & ")"
Versuchen
Sehen, ob das hilft: stackoverflow.com/questions/5122582/...
phänomenal, du bist ein guter Mensch.
Wenn ich mit diesem code bekomme ich Laufzeitfehler 424 Objekt Erforderlich Auf diese Zeile: strSQL = "INSERT INTO Project_Names (Proj_Num)" & "VALUES (" & NewProj.[A1] & ")"
Versuchen
?worksheets("newproj").[a1]
ich glaube nicht, dass Sie können beziehen sich auf eine Arbeitsblatt-Namen, wie Sie getan haben. Wenn das funktioniert, können Sie es verwenden, in oace der bestehenden Referenz, ohne das Fragezeichen, natürlich. BTW in Stackoverflow, wenn Sie Präfix den Namen einer person, die mit @, Sie werden eine Nachricht bekommen, sonst können Sie verpassen es, es sei denn, Sie sind der Autor der post.InformationsquelleAutor thebiglebowski11 | 2012-02-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie mithilfe von VBA-code IN der SQL-Anweisung. Die folgende Zeile wird kompiliert, aber nicht bei der Ausführung:
Es schlägt fehl, da Sie noch in der SELECT-Anweisung, wenn Sie machen verwenden Sie die VBA-Funktionen von Arbeitsblättern, (), .Angebot, und .Wert. Wenn ich mich Recht erinnere, sollte man in der Lage, SQL-syntax verwenden, wählen Sie einen bestimmten Bereich aus einem Blatt. Die korrekte syntax für das sein sollte:
Wenn Sie möchten, dass ein bestimmter Bereich dann wird Sie es probieren würde:
Gibt es einen Artikel von Microsoft zu diesem Thema: http://support.microsoft.com/kb/257819 wenn Sie sich für weitere Informationen über die Verwendung von ADO mit Excel. Die Scripting Guys schrieb auch einen anständigen Artikel, der half mir zu verstehen, es ein paar Jahre zurück: http://technet.microsoft.com/en-us/library/ee692882.aspx.
Hoffentlich, die hilft, Ihr problem zu lösen. Aber, ich werde dich verlassen, mit einem Wort der Warnung. Ich erinnere mich, laufen in einige wirklich seltsame Probleme beim Abfragen einer bereits geöffneten Excel-Tabelle, wenn ich wurde zum ersten mal mit diesem code. Wenn ich die Abfrage eine Excel-Tabelle, die bereits geöffnet war, dann würde ich laufen in ein Problem, wo der Speicher wäre ausgelaufen und Excel würde irgendwann der Arbeitsspeicher zu verwenden. Der einzige Weg, das problem zu lösen war, um Excel zu schließen völlig. Auch war es egal, ob die ADO-Verweise wurden ordnungsgemäß geschlossen/gelöscht wurde oder nicht.
In der Tat, ich habe gerade Gegoogelt, es zu überprüfen und hier ist ein Artikel über die Fehler: http://support.microsoft.com/default.aspx?scid=kb;en-us;319998&Product=xlw.
InformationsquelleAutor Kittoes0124
Es klingt ähnlich wie ein problem das ich einmal hatte, wenn ein Upgrade von office 2003 auf 2007.
Meine Lösung war, den Wechsel des providers in der Verbindungszeichenfolge. Da Sie mit einem modernen office-version ich denke, es sollte sein:
Vielleicht möchten Sie sich in die Erweiterte Eigenschaft als gut. Ich weiß, dass Excel 8.0 ist eine Excel '97 Datei. Und Excel 2010 14.0
InformationsquelleAutor SouthL