Seite 1 von 2
Zugriff ueber ODBC ohne Adminrechte nicht möglich
Verfasst: 16.11.2006 13:15
von dysti
Hallo,
möchte auf eine Access- oder Exel-Datei über ODBC zugreifen. Dazu gibt es verschiedene Lib´s hier im Forum. Funktionieren allesamt hervorragend, aber nur am Rechner mit Administratorrechten. Wenn ich jetzt z.B. in der Firma bin und möchte am Arbeitsplatz mein Programm ausführen, kann er die DSN etc. auf Grund mangelnder Administratorrechte nicht erstellen.
Gibt es trotzdem eine Möglichkeit auf Exeldateien zu zugreifen?
Verfasst: 17.11.2006 12:50
von dysti
.......es muß ja nicht unbedingt über den Treiber der Zugriff erfolgen.
Verfasst: 17.11.2006 13:03
von ts-soft
Re: Zugriff ueber ODBC ohne Adminrechte nicht möglich
Verfasst: 17.11.2006 20:07
von tranquil
dysti hat geschrieben:Hallo,
möchte auf eine Access- oder Exel-Datei über ODBC zugreifen. Dazu gibt es verschiedene Lib´s hier im Forum. Funktionieren allesamt hervorragend, aber nur am Rechner mit Administratorrechten. Wenn ich jetzt z.B. in der Firma bin und möchte am Arbeitsplatz mein Programm ausführen, kann er die DSN etc. auf Grund mangelnder Administratorrechte nicht erstellen.
Gibt es trotzdem eine Möglichkeit auf Exeldateien zu zugreifen?
Das ist sehr merkwürdig. Auf Arbeit besitze ich auch keine Administrationsrechte, kann auch weder in die Verwaltung, noch die ODBCConfig öffnen. Trotzdem funktioniert das einrichten & löschen einer DSN.
Verfasst: 18.11.2006 08:42
von dysti
Bei mir gibt es da noch nicht einmal den Menuepunkt "Systemsteuerung"
Verfasst: 19.11.2006 22:33
von tranquil
Hast Du die snippets aus der purearea benutzt? rings hat mal 2 prozeduren geposted mit denen es gut funktioniert.
Verfasst: 23.11.2006 13:02
von dysti
tranquil0:
Habe verschiedene Versionen von Rings probiert. Vielleicht habe ich auch nicht die richtigen Snippets gefunden. Könntest du mir noch ein Hinweis geben, welche Snippets zu meintest.
Verfasst: 23.11.2006 13:24
von ts-soft
Was ist denn nun mit ScriptControl, damit kannste doch auch auf Excel
zugreifen? Beispiel ist auch bei.
Verfasst: 24.11.2006 08:29
von dysti
Hallo TS-Soft,
oh Gott, hatte ich ganz aus den Augen verloren. Werde es gleich ausprobieren.
Verfasst: 24.11.2006 08:38
von dysti
Hallo Ts-Soft,
habe folgenden Code aus deinen Examples erstellt:
Hier die PB-Datei:
Code: Alles auswählen
IncludeFile "VariantHelper.pb"
Procedure.s LoadVbsScript(Datei.s)
temp.s = ""
If OpenFile(0, Datei)
While Not Eof(0)
temp + ReadString(0) + #CRLF$
Wend
EndIf
ProcedureReturn temp
EndProcedure
SCtr_SetLanguage("VBScript")
SCtr_SetTimeOut(20000)
SCtr_AddCode(LoadVbsScript("Excel.vbs"))
SCtr_EvalVariant("Namen", Value.Variant)
SCtr_EvalVariant("Vornamen", Value.Variant)
SCtr_EvalVariant("Telefon", Value.Variant)
; Anzahl der Elemente holen
count = GetVariantSafeArrayCount(Value)
If count
; Zeiger auf Daten holen
*Vornamen.pdata = GetVariantSafeArray(Value)
*Namen.pdata = GetVariantSafeArray(Value)
For index = 0 To count - 1
; Daten ausgeben als String / Typeumwandlung automatisch in GetVariantStr
MessageRequester("", GetVariantStr(*Vornamen\Value[index]) + GetVariantStr(*Namen\Value[index]))
Next
EndIf
und hier die VBS-Datei:
Code: Alles auswählen
Dim cnn, rs
Dim Namen(2)
Dim Vornamen(2)
Dim Telefon(2)
set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Telefon.xls;Extended Properties=Excel 8.0;"
set rs = CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM [Tabelle1$]
anz=0
If Not rs.eof then
Namen(anz) = rs.Fields("Namen")
Vornamen(anz) = rs.Fields("Vornamen")
Telefon(anz) = rs.Fields("Telefon")
anz=anz+1
End If
Habe eine Zeile mit Daten in der Exeldatei hinzugefügt.
Bekomme aber keine Daten angezeigt.