| |
Visual-Basic EinsteigerRe: Datenbank zugriff verweigert | | | Autor: workuhol | Datum: 01.10.12 15:02 |
| Hallo Blackbox
Ich habe es leider nur so gelernt. Wie müsste der code den aussehen um kein Access installiert zu haben und trotzdem zugriff zu haben ?
Ich bin lernfähig.
Gruß workuhol
Gru?
workuhol | |
Datenbank zugriff verweigert | | | Autor: workuhol | Datum: 30.09.12 18:23 |
| Hallo Leute
Ich habe das Problem, daß ich meine programmierte Anwendung, nicht starten kann.
Ich habe eine Anwendung, die auf eine Datenbank (Access)zugreift und beim Programmstart geöffnet wird. Ich habe das Programm weitergegeben und auf dem anderen Computer kommt dann meine Fehlermeldung "Datenbank kann nicht geöffnet werden." Nun weiss ich daß Access eine log-datei schreibt, wenn die Datenbank geöffnet wird. Aber: muß dann auf dem Computer Access installiert sein??????????
Wenn ja, gibt es dann irgendwas, (außer Access) das ich zu meinem Programm mitliefern muß ?????????
Gru?
workuhol | |
Re: Datenbank zugriff verweigert | | | Autor: Blackbox | Datum: 30.09.12 18:35 |
| Hi,
bevor viele Fragen kommen, bitte gib den Code an, wie Du auf die Datenbank zugreifst. Damit erklärt sich dann vieles. | |
Re: Datenbank zugriff verweigert | | | Autor: workuhol | Datum: 30.09.12 19:54 |
| Nochmal zum verständnis: Die Anwendung + Datenbank verbindung funktioniert.
Das ist der Aufruf.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Private Sub Form_Load()
If Not LoadDatabase(App.Path & "\db1.mdb") Then
Call MsgBox("Datenbank konnte nicht geöffnet werden!", vbCritical)
End
End If
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Und das liegt in einem Modul
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Option Explicit
Public CurrentConnection As ADODB.Connection
Public Function LoadDatabase(strFilename As String) As Boolean
On Error GoTo ErrH
If Not ExistFile(strFilename) Then Exit Function
Set CurrentConnection = New ADODB.Connection
Call CurrentConnection.Open(ConnectionString(strFilename))
If Len(CurrentConnection.ConnectionString) <= 0 Then Exit Function
LoadDatabase = True
ErrH:
If Err Then Set CurrentConnection = Nothing
End Function
Public Sub CloseDatabase()
On Error GoTo ErrH
If Not CurrentConnection Is Nothing Then Call CurrentConnection.Close
ErrH:
Set CurrentConnection = Nothing
End Sub
Public Function ExistFile(strFilename As String) As Boolean
On Error GoTo ErrH
ExistFile = (Len(Dir(strFilename)) > 0)
ErrH:
End Function
Public Function ConnectionString(strFilename As String) As String
Dim strConnection As String
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;"
strConnection = strConnection & "Data Source=" & strFilename '& ";"
ConnectionString = strConnection
End Function
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Ich kann mir nur vorstellen daß mir auf dem anderen Computer die umgebung für Access fehlt.
Gruß workuhol
Gru?
workuhol | |
Re: Datenbank zugriff verweigert | | | Autor: wb-soft | Datum: 30.09.12 20:03 |
| Hi!
Zur Klarstellung: Du arbeitest mit VB6 und der Jet-Engine. Access ist dazu nicht notwendig, und du hast vermutlich auch nicht die Berechtigung, Access auszuliefern.
Schalt einfach die Fehlerbehandlung ab. Dann hast du die Chance auf eine brauchbare Fehlermeldung.
Es gibt übrigens eigene Tags zum Posten von Code.
mfg
WB | |
Re: Datenbank zugriff verweigert | | | Autor: Blackbox | Datum: 30.09.12 21:15 |
| Hi
Du vermutest richtig. So wie Du das Ding aufgesetzt hast, braucht jeder, der Dein Ding nutzt Access.
Leider!
Normalerweise braucht man Access nicht um auf Access-DB's zugreifen zu können, man muss das Projekt nur anders aufbauen.
Beitrag wurde zuletzt am 30.09.12 um 21:37:06 editiert. | |
Re: Datenbank zugriff verweigert | | | Autor: wb-soft | Datum: 01.10.12 09:49 |
| Hi!
Vielleicht liegt es auch einfach an der Berechtigung.
App.Path & "\db1.mdb" legt nahe, daß die DB im Arbeitsverzeichnis unter Programme liegt. Aktuelle Versionen von Windows erlauben den Zugriff auf diesen Ordner nur mit Admin-Rechten.
Wenn es sich also um Vista/7 mit aktiver UAC handelt, darf dein Programm nicht in diesen Ordner schreiben.
mfg
WB | |
Re: Datenbank zugriff verweigert | | | Autor: OGGI | Datum: 01.10.12 19:08 |
| Howdy workuhol
Binde ein »Microsoft FlexGrid Control 6.0 (SP6)« an deine Datenbank und öffne dann die Datenbank mit nachfolgendem Code.
Data1.DatabaseName = "C:\Program Files (x86)\db1.mdb"
Data1.RecordSource = "select * from Datenbankname order by Spalte1"
Data1.Refresh MfG Oggi | |
Re: Datenbank zugriff verweigert | | | Autor: wb-soft | Datum: 02.10.12 10:17 |
| Hi!
@Oggi:
Da bereits der Verbindungsaufbau zur DB nicht funktioniert, kann dein Vorschlag keine Lösung sein.
Gebundene Steuerelemente sind nur in wenigen Ausnahmefällen sinnvoll. In den meisten Fällen bringen sie Nachteile und Probleme mit sich.
Datensteuerelemente sind ein absolutes NoGo. Auch wenn sie in vielen Beispielen und Büchern vorkommen sollte auch Einsteiger und Hobbyprogrammierer die Finger davon lassen.
mfg
WB | |
Re: Datenbank zugriff verweigert | | | Autor: workuhol | Datum: 03.10.12 19:22 |
| Hi wb-soft
gibts den nichts von Microsoft das Access simuliert, oder wie muß der code aussehen das ich auch ohne Access zugriff auf die Datenbank habe.
Oder kann ich die Datensätze auch in eine Textdatei schreiben und wieder auslesen.
Gruß workuhol
Gru?
workuhol | |
Re: Datenbank zugriff verweigert | | | Autor: wb-soft | Datum: 03.10.12 19:52 |
| Hi!
Eigentlich wurde schon alles gesagt. Access ist nicht notwendig, und du hast kaum das Recht, Access mit deinem Programm auszuliefern.
Dein Code enthält keinen offensichtlichen Fehler. Wenn du die Fehlerbehandlung deaktivierst, ergibt sich vielleicht eine brauchbare Fehlermeldung.
Außerdem muß sichergestellt werden, daß alle notwendigen Rechte vorhanden sind.
mfg
WB | |
Re: Datenbank zugriff verweigert | | | Autor: Franki | Datum: 07.10.12 23:02 |
| workuhol schrieb:
Zitat: | | Oder kann ich die Datensätze auch in eine Textdatei schreiben
und wieder auslesen.
| |
Natürlich kannst du Daten auch in eine Textdatei, XML-Datei oder sonst was schreiben. Aber wenn die an gleicher Stelle liegen soll wie jetzt deine mdb Datei wirst du exakt das gleiche Problem haben mit den Berechtigungen. Da wird das Schreiben auch nicht funktionieren.
Es gibt ja unter Windows ein spezielles Verzeichnis wo der normale User Schreibrechte für Anwendungsdaten hat. Packe deine DB dort genau dort hin und es wird funktionieren. Wie das Verzeichnis genau lautet je nach Betriebssystem findest du raus über "Special Folders".
Ich habe das bei VB6 Anwendungen mit mdb so gemacht, dass ich beim Setup die leere DB mit ausgeliefert habe ins Programmverzeichnis (Rohling sozusagen) dann beim ersten Programmstart das entsprechende Verzeichnis ermittele, die DB dort hin kopiere und ab dann wird dort hinein geschrieben. Damit bis du unabhängig von einem festen Pfad da der sich ja je nach BS unterscheiden kann.
Gruß
Frank | |
Re: Datenbank zugriff verweigert | | | Autor: Ike66 | Datum: 08.10.12 11:15 |
| ...falls aber doch eine Access Version ausgeliefert werden muss,
würde ich mal nach "access runtime" googeln...... | |
Re: Datenbank zugriff verweigert | | | Autor: Franki | Datum: 28.10.12 23:51 |
| Hallo,
du solltst dich mal schlau machen, was der Unterschied zwichen Access selbst und der Runtime ist. Die Aussaga, dass man die Runtime als Ersatz für Access ausliefer kann bzw. sollte oder darf ist falsch.
Und wie gesagt, um auch eine *.mdb per VB zugreifen zu können ist beides nicht notwendig. Und das entspricht auch den Lizenzbestimmungen von MS.
Dazu kommt noch, dass man das mit den Runtimes sowieso nicht wirklich steuern kann. Denn man weiß nie was der User auf dem Zielrechner für eine Windows- bzw. Officeversion hat. Da gibt es unendlich viele Möglichkeiten, dass auch das schief gehen kann wenn sich Runtime und Office in die Quere kommen.
Gruß
Frank | |
Re: Datenbank zugriff verweigert | | | Autor: wb-soft | Datum: 29.10.12 09:52 |
| Hi!
workuhol has sich schon länger nicht mehr gemeldet. Entweder hat er den Fehler gefunden, oder hat das Interesse verloren.
In beiden Fällen dürfte das Problem als nicht mehr aktuell zu sehen sein.
mfg
WB | |
Re: Datenbank zugriff verweigert | | | Autor: workuhol | Datum: 30.10.12 12:38 |
| Hallo Leute.
Nein,Ich habe das Interesse nicht verloren.
Ich habe auf sieben Computern mein Programm gestartet.
Auf 4 lief es anstandslos und die anderen 3 gaben mir die bekannte Fehlermeldung.
Auf den 4 die keine Probleme machten war Access installiert.
Ich habe mir dann die Access- Runtime heruntergeladen und auf den 3, mit der Fehlermeldung, installiert.
Jetzt läuft es.
Somit ist das thread erledigt.
Danke für eure Ideen und Hilfe
Gruß workuhol
Gru?
workuhol | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|