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

Laufzeitfehler bei ODBC Zugriff auf Oracle Datenbank mit VBA

Frage Entwicklung VB for Applications

Mitglied: firsty78

firsty78 (Level 1) - Jetzt verbinden

10.04.2008, aktualisiert 16.04.2008, 11454 Aufrufe, 11 Kommentare

Hallo zusammen,

ich das Problem, dass ich von VBA einen Laufzeitfehler gemeldet bekomme.

Folgende Fehlermeldung:

"Laufzeitfehler: '-2147217865 (80040e37)': Automatisierungsfehler"

b1ff2c3bf733d7e1ca25283df75591c0-lzf - Klicke auf das Bild, um es zu vergrößern

Das Ganze passiert beim Aufrufen eines SQL Statements. Folgenden Code verwende ich:

Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset


db_name = "READ_ONLY" '
UserName = "USER"
Password = "PW"

Statistikwerte_Monat = "E.Monate_" & IntMonat + 12

' Alle Monatswerte Umsatz, Absatz (UAK, ABAK), Sachbearbeiter, USCHL

StrSelect = _
"Select " _
& "E.Datenfelder_1 ArtNr, E.Datenfelder_2 KdNr, A.Sachbearbeiter SB, A.Uschl US, E.Satzart SA, A.Sachbereich SachB, " _
& Statistikwerte_Monat & " AktMon " _
& "from Infor.relEs E left join Infor.relAc A on E.Datenfelder_1 = A.MNr " _
& "where E.Satzart in ('UAK', 'ABAK')" _
& "and " & Statistikwerte_Monat & " > 0"

cnOra.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" + Password + ";"
rsOra.CursorLocation = adUseServer

rsOra.Open StrSelect, cnOra, adOpenForwardOnly

Die Fehlermeldung erscheint beim Ausführen der letzten Zeile.

Weitere Info: der Benutzer "USER" ist nicht Inhaber des Schemas. Benutze ich den User des Schemas, dann wird der Code problemlos abgearbeitet.

Kann das vielleicht an dem Treiber liegen? Für den "USER" nutze ich den MS ODBC Treiber für Oracle.

Vielen Dank für Eure Hilfe!

Grüße,
firsty
Mitglied: SvenGuenter
11.04.2008 um 15:31 Uhr
welche ora version und welcher treiber und mit welchem Tool setzt due das SQL ab ;o)

dann kann man evtl weiterhelfen.
Bitte warten ..
Mitglied: firsty78
11.04.2008 um 15:43 Uhr
Hallo Sven,

ich hoffe, dass ich mich beim Beantworten der Frage nicht vollständig blamiere.

Tool: VBA Excel
Treiber: Microsoft ODBC Treiber für Oracle (ist der Treiber, der standardmäßig bei Datenquellen (ODBC) vorhanden ist und installiert werden kann)
ora version: da muss ich leider passen, ich hab keine Ahnung. Vielleicht kannst Du kurz beschreiben, was Du meinst (bin noch nicht so lange im Geschäft !!)

Grüße,
firsty
Bitte warten ..
Mitglied: Biber
11.04.2008 um 16:38 Uhr
Moin firsty78,

@ora version:

Schick mal dieses Statement rüber:
01.
SELECT * FROM v$version	WHERE banner LIKE '%Oracle%'
Als ResultSet sollte eine Zeile zurückkommen mit etwas ähnlichem wie
Oracle Database 11i Internal Edition Release 11.2.0.0.9 - Beta

Diese Versionsnummer (7, 8 ,9,...) war gefragt.

Andere Frage: Das der Nicht-Owner-Benutzer die Leserechte auf beiden Tabellen hat ist gewährleistet?

ich frage nur der Vollständigkeit halber: ich tippe auch auf den M$-Oracle-Treiber.
Meistens ist das einzige, was der treibt, Anwendern Tränen in die Augen.

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
11.04.2008 um 16:58 Uhr
Hallo Biber,

wo soll ich das ausführen? In VBA klappts nicht und in SQLPlus wills auch nicht so recht

Grüße
firsty
Bitte warten ..
Mitglied: Biber
11.04.2008 um 17:20 Uhr
ja wie was?
Wenn Du doch ohnehin SQlPlus hast, dann siehst Du doch beim Anmelden diese Versionsnummer....?
01.
Connected to: 
02.
Oracle Database 11i Internal Edition Release 11.2.0.0.9 - Beta 
03.
With the Partitioning, OLAP and Data Mining options 
04.
 
05.
SQL> select * from v$version where banner like '%Ora%'; 
06.
 
07.
BANNER 
08.
---------------------------------------------------------------- 
09.
Oracle Database 11i Internal Edition Release 11.2.0.0.9 - Beta
???

Mag sein, dass dieses VBA-"SQL" statt der Standard-Wildcard-Zeichen "%" die M$-Zeichen "*" haben will.
Aber ein "select * from v$version" sollte IMMER und für jeden User funktionieren.

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
11.04.2008 um 17:59 Uhr
Na ok, bei mir kommt Versionsnummer 9.2.0.6.0
Bitte warten ..
Mitglied: Biber
11.04.2008 um 18:12 Uhr
Nächste Frage,

wenn Du SQL-Plus hast, dann hast Du doch wohl auch den ganzen Oracle-Client installiert.
Und damit doch den (vermutlich) Instantclient-ODBC-Treiber von Oracle.
Kannst Du den mal ausprobieren? (Name steht unter "Verwaltung->ODBC-Verbindungen->System-DSN")

Grüße
Biber
Bitte warten ..
Mitglied: firsty78
14.04.2008 um 08:17 Uhr
den hab ich ausprobiert.

Da kommt die Fehlermeldung "Table or View does not exist"

Ich habe auch an das Userschema gedacht (damit hatte ich bereits in der Vergangenheit Probleme).

Beim Userschema habe ich als Trenner die Varianten "." und "_" probiert, also

...
from Infor.relEs E left join Infor.relAc A on E.Datenfelder_1 = A.MNr
...

bzw.
...
from Infor_relEs E left join Infor_relAc A on E.Datenfelder_1 = A.MNr
...

Ich blick da einfach nicht durch...
Bitte warten ..
Mitglied: Biber
14.04.2008 um 09:05 Uhr
Moin firsty78,

wir werden des Rätsels Lösung schon finden...
als Trenner die Varianten "." und "_" probiert,
Brauchst Du nicht probieren. Wenn "Trenner", dann ist es der Punkt, also SchemaName.Tabname.

Nochmal zur Sicherheit:
  • der ausführende User hat SELECT-Rechte auf beide Tabellen (oder Views)?
  • oder soll er über ein Synonym zugreifen? Dann braucht er die Rechte auf Views/Tabellen zusätzlich
  • weil Deine Datenbank den merkwürdigen Namen "READ_ONLY" trägt: hilft es vielleicht, falls Du beiden vorangegangenen Fragen mit einem entrüsteten "Selbstverständlich!" abschmettern konntest, wenn Du in Deinem VB-Zeugs noch folgendes einfügst bzw. änderst:
01.
'.... 
02.
Const adUseClient = 3 
03.
 
04.
'---- LockTypeEnum Values ---- 
05.
Const adLockReadOnly = 1 ' Gilt später für den RS -->RS.LockType = adLockReadOnly  
06.
'... 
07.
Const adModeRead = 1 
08.
'.... 
09.
'########rsOra.CursorLocation = adUseServer 
10.
cnOra.CursorLocation = adUseClient 
11.
cnOra.Mode = adModeRead  
12.
 
13.
rsOra.CursorLocation = adUseClient 
14.
rsOra.LockType = adLockReadOnly 
15.
rsOra.Open StrSelect, cnOra, adOpenForwardOnly 
16.
...
Ich denke nicht, dass sich Deine CursorLocation auf dem Server befindet.
Aber schaun wir mal...


Grüße
Biber
Bitte warten ..
Mitglied: firsty78
16.04.2008 um 14:30 Uhr
Hallo Biber,

habe die ganze Zeit nicht geantwortet, da ich intensiv auf Ursachenforschung gewesen bin.

Nach einem längeren Telefonat mit dem Infor Experten sind wir darauf gekommen, dass bei der Anlage dieses Benutzers teilweise keine SELECT-Rechte vergeben wurden - aus welchen Gründen auch immer, ist bis dato noch nicht ganz klar (Sollte Inforseitig eigentlich so sein).

Die Rechte haben wir jetzt vergeben und siehe da, es funktioniert.

Vielen Dank für Deine Tips. Alleine hätte ich bestimmt nicht in diese Richtung recherchiert.

Grüße,
firsty
Bitte warten ..
Mitglied: Biber
16.04.2008 um 17:49 Uhr
Moin firsty78,

siehst Du... Computerprobleme sind alle mit gesundem Menschenverstand zu lösen <grinz>.

Was noch offen ist (und ziemlich weit auf Deiner Prio-Liste hochgeschoben werden sollte):

Kläre mit Deinem Cheffe und den Infor-Hansels und -Gretels, wer denn nun (also wie viele Leute) die User-Administriererei machen kann/machen darf/machen soll.

Vor allem das ganz banale Einrichten/Anlegen von Usern und Granten von Rechten.
Das GRANTen von Rechten gehört sicherlich NICHT zu den Aufgaben, für die eine Software-Entwicklungsklitsche irgendwo hinter Wuppertal benötigt wird.

Wenn Du mit denen telefoniert hast, dann sitzen die wahrscheinlich nicht zwei Schreibtische weiter, sondern ZU WEIT WEG, um den normalen alltäglichen Wahns^H^H^H Ablauf bei Euch zu garantieren.

Lass Dir im erstem Schritt erstmal auf eine UserID Deiner Wahl (z.B. VorOrtAdmin) ein "GRANT ALL" incl "GRANT GRANT" auf die Datenbank(en) geben.

Und dann baust Du oder sonst ein Interessierter in Eurer Firma das Knowhow dazu auf.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Backup
Backup von laufender Oracle-Datenbank - VSS writer (4)

Frage von brain2011 zum Thema Backup ...

Windows Server
gelöst Oracle ODBC Treiber in Windows 2008 R2 (3)

Frage von kschi12 zum Thema Windows Server ...

VB for Applications
gelöst ADO VBA, was wenn kein Treffer gegen die Datenbank erfolgt (8)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
gelöst VBA Skript funktioniert auf lokalen Zugriff, aber nicht auf Netzwerkshare (1)

Frage von Dr.Cornwallis zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...