Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS-ODBC-Verbindung-Insert-wird nicht ausgefuehrt

Frage Entwicklung VB for Applications

Mitglied: Huan90

Huan90 (Level 1) - Jetzt verbinden

28.01.2015, aktualisiert 29.01.2015, 639 Aufrufe, 5 Kommentare

Hallo liebe Administrator-Gemeinde,

ich habe ein Problem mit einem VB-Script (ich hoffe, da bin ich hier an der richtigen Stelle, obwohl der Bereich ausdrücklich VBA heißt).

In dem Script wird über eine ODBC-Schnittstelle eine Verbindung zu einer Access-Datenbank aufgebaut.
In der Datenbank sind 2 Tabellen enthalten.

Als erstes wird in dem Script die Verbindung wie folgt aufgebaut:
01.
cnStr = "Provider=MSDASQL;DSN=XYZ;UID=;PWD=;"  
02.
 Set cn = CreateObject("ADODB.Connection") 
03.
 cn.ConnectionString = cnStr 
04.
 cn.Open 
05.
 Set ac = CreateObject("ADODB.Command") 
06.
 Set rs = CreateObject("ADODB.RecordSet")
Später wird ein Datensatz aus einer der Tabellen ausgelesen:
01.
SQuery = "SELECT * FROM SAP_XYZ WHERE Linie = " & linie & " And Status = 1" 
02.
rs.OPEN SQuery,cn 
03.
Set rs = cn.Execute(SQuery)
Bis hierher funktioniert auch alles wunderbar.
Anschließend wird eine INSERT-Anweisung in einer Variable (SQuerry) gespeichert. Diese soll wie folgt ausgeführt werden:
01.
ac.ActiveConnection = cn 
02.
	 ac.CommandText = SQuery 
03.
	 ac.Execute
Die Insertanweisung (SQuerry) lasse ich mir mittlerweile zu testzwecken auch in eine Textdatei schreiben.
Kopiere ich die Anweisung und führe sie direkt in der Datenbank über ein Querry aus, wird der Datensatz auch korrekt eingetragen.

Mich wundert nun, dass 1.) Die Verbindung zur Datenbank funktioniert, 2.) der Insert-Befehlt funktioniert aber 3.) nicht beides zusammen?! O.o

Das Script läuft auch komplett ohne Fehler durch und ich weiß nicht mehr, wo/was ich noch suchen soll.

Ich hoffe ihr könnt mir weiter helfen und verbleibe mit freundlichem Gruß,

Huan90

p.s. Die Insertanweisung ist mit Leerzeichen 1468 Zeichen lang.
Mitglied: 114757
28.01.2015, aktualisiert um 17:58 Uhr
Moin,
dann liegt der Fehler vermutlich in der Insert-Anweisung. Eine Query aus Access kann nicht immer 1zu1 aus Access in den Code übernommen werden, deswegen ist eine Analyse hier ohne deine Insert-Query sehr schwer.

Gruß jodel32
Bitte warten ..
Mitglied: emeriks
28.01.2015 um 18:59 Uhr
Hi,
Code-Tags verwenden!

Haste schon mal versucht, die Connection zu schließen und vor dem INSERT eine neue aufzubauen?

Schon mal den Weg über die Recordset-Methoden versucht?
01.
rs.AddNew 
02.
rs.Fields("Field1").Value = Value1 
03.
rs.Fields("Field2").Value = Value2 
04.
... 
05.
rs.Update
Allerdings musst Du dann das Recordset schreibbar öffnen.

E.
Bitte warten ..
Mitglied: Huan90
29.01.2015 um 10:00 Uhr
Moin,

Ich habe nun mehrere Versuche gestartet, allerdings mache ich wohl immer noch irgend etwas falsch.
Derzeit bekomme ich folgende Fehlermeldung:

"Die Argumente sind vom falsche Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar."

Die Verbindung wird mittlerweile vorher geschlossen und für den Insert neu geöffnet.

01.
Set rs = CreateObject("ADODB.RecordSet") 
02.
cn.Open 
03.
With rs 
04.
  .Open "PalTrans",cnStr ,adOpenForwardOnly,adLockOptimistic,adCmdTable 
05.
  If Not .eof Then 
06.
    .AddNew 
07.
.Fields("FELD1").Value = tmpParts(1) 
08.
09.
10.
11.
.update 
12.
    .Close 
13.
  End If 
14.
End With 
15.
cn.Close
Und hier noch einmal der Insert (bei dem Versuch mit ac.CommandText = SQuerry / ac.Execute:
01.
INSERT INTO PalTrans(ZZ_WERKS, ZZ_RESOURCE, ZZ_MATNR, ZZ_MHD, ZZ_GAMNG, ZZ_KUNCHARGE, ZZ_PALETTE, ZZ_TEID, ZZ_STEUERKZ, ZZ_BELADART, ZZ_PALSTATUS, ZZ_TYPTRAEGER, ZZ_TYP1TOCHTER, ZZ_MENGE1TOCHTER, ZZ_TYP2TOCHTER, ZZ_MENG2TOCHTER, ZZ_AUFNR, ZZ_ERDAT, ZZ_UZEIT, ZZ_BUTEXT, ZZ_STRETCH, ZZ_FEVOR, ZZ_MAKTX, ZZ_ENDKZ, ZZ_AUSBU, ZZ_MENGE, ZZ_MEINH, ZZ_IEDD, ZZ_IEDZ, ZZ_BUDAT, ZZ_CHARGE, Dateiname, ZZ_PACKBILD, ZZ_LAGENANZAHL, ZZ_PACKVORSCHRIFT, ZZ_INSMK, ZZ_KAR, ZZ_BESTQ, ZZ_VBELN, ZZ_KUNNR, ZZ_SERNR, ZZ_SERNRVERW, ZZ_HAUPTCHARGE, ZZ_EGALISIERUNG, Anwahl_Egalisierung, ZZ_FAKTURAGEW, ZZ_FAKTGEWEINH, ZZ_NENNFUELLM, ZZ_NENNFUELLEINH, ZZ_TOLERANZMENGE, ZZ_TOLERANZEINH, ZZ_TARA, ZZ_TARAGEWEINH, ZZ_HANDTARA, ZZ_NETTOGEWICHT, ZZ_NETTOGEWEINH, ZZ_BRUTTOGEWICHT, ZZ_BRUTTOGEWEINH, ZZ_MMCID, ZZ_CONTAINERDRUCK, ZZ_METALLDET_TEST, ZZ_SATZART, PV_TRAEGERTYP, PV_TOCHTERTYP1, PV_TOCHTERTYP2, Linie, Status, MHD2, test, Sollpaletten, Istmenge, Kundenartikelnummer, Kundenartikelbezeichnung, ZZ_TEID_TOCHTER1, ZZ_TEID_TOCHTER2) VALUES('2000','00001234','000000000000000970','20130107','     24000.000','0','30','','0','0','','01','','','','','000001083860','28012015','155627','','01','Z06','WALZEN-VMP STAND.    25KG-SACK','','','           750','KG','28012015','155627','28012015','0100086583','','','1','00970S750','','             0','','','','',0,'','',0,'         0.000','KG','','','','','','','','','','','','','','01','1','2','3','4',1,1,'07.01.2013','','32','','','','','')
LG Huan90
Bitte warten ..
Mitglied: Huan90
29.01.2015 um 10:08 Uhr
Hey,

hat sich erledigt...
SQuerry = "INSE......

ac.CommandText = SQuery


... schoenen Tag noch und Danke fuer eure Mühe!
Bitte warten ..
Mitglied: 114757
29.01.2015, aktualisiert um 10:38 Uhr
SQuerry = "INSE......

Diese verdammten r's

Den Beitrag dann noch auf gelöst setzen.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Microsoft Office
ODBC Verbindung Problem mit Excel (5)

Frage von 3jojojo zum Thema Microsoft Office ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Webbrowser
gelöst Firefox 50 downloads stocken ohne Internet Verbindung (2)

Frage von LordXearo zum Thema Webbrowser ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...