vbp -> exe Pfadunterschiede !? Datenbank

MatMagic

Erfahrenes Mitglied
Hallo Community,
mein Programm verliert den "Pfad" zur Datenbank sobald ich aus der "vbp" eine "exe"
erstelle.

Das Programm liegt hier "f:\projekt\"
und die Datenbank
liegt hier "f:\projekt\db\db.mdb"
als relativen Pfad habe ich nun als DataBaseName
"db\db.mdb"
angegeben.

Sobald ich mein Projekt unter VB starte funktioniert auch alles.....aber wenn ich von
der "vbp" eine "exe" erstelle (im gleichen Ordner - also selbe Struktur)
findet das Programm meine Datenbank nicht mehr !

Fehlermeldung:
"f:\db\db.mdb" isn`t a valid path. Make sure that the pathname is spelled correctly
and that you are connected to the server on which the file resides.


Also der Pfad ist nicht der richtige (sehe ich ja auch - denn "f:\projekt\db\db.mdb"
wäre richtig) und ich soll sichergehen das ich den Pfad korrekt angegeben
habe....und/oder mit dem entsprechenden Server verbunden bin auf dem sich der Pfad
zur angegebenen DB bezieht.

Tjo...ok - aber der Pfad ist richtig ! (unter VB)
(denke ich)
Als relativer Pfad funktioniert das solange ich das Prog unter "VB" ausfuehre....als
EXE ist es plötzlich kein relativer Pfad mehr

Buedde helf mir auffe Sprünge...ich weiss nimmer weiter...app.path usw hat mir bis

jetzt auch nimma geholfen :confused: :confused:
 
Zuletzt bearbeitet:
Hallo, so sollte es gehen:
Code:
Dim Pfad As String
Dim DbPfad As String

Pfad = App.Path

If Not Right(Pfad, 1) = "\" Then Pfad = Pfad & "\"

DbPfad = Pfad & "db\db.mdb"
 
Danke wincnc für deine Hilfe - aber leider funktioniert es nicht.
In den Objekteigenschaften meines Dataobjektes kann ich doch keine Variable eingeben !? Also ich habs dann trotzdem mal getestet und dbpfad als Datenbankname übergeben - aber der Fehler bleibt weiterhin.

Dim Pfad As String
Dim DbPfad As String
Pfad = App.Path
If Not Right(Pfad, 1) = "\" Then Pfad = Pfad & "\"
DbPfad = Pfad & "db\db.mdb"

data.DatabaseName = dbpfad

Auf einer englischen Seite habe ich gelesen das dieser Fehler nur auftritt wenn man versucht von einem Client auf einen Server mit einer Datanbank zuzugreifen - und da dieser Server nicht die gleiche Verzeichnisstruktur hat wie der Client würde halt diese Fehlermeldung ausgegeben. Auch mit Lösungsvorschlägen....aber da ich überhaupt nicht auf einen Server zugreifen will sondern nur auf meine DB welche auf meiner Festplatte liegt - nützt mir das halt recht wenig.

Bin für jeden weiteren Lösungsansatz dankbar..... :(

**Edit
Der Fehler tritt übrigens beim Form Load auf und nicht erst beim Aufruf der DB....
 
Hallo, hier mal der komplette Code um eine AccessDB und eine Tabelle zu öffnen.
Code:
' Verweis auf Microsoft ActiveX Data Objects 2.x Library nicht vergessen !

Dim DB As ADODB.Connection
Dim RS As ADODB.Recordset

Private Sub Form_Load()
Dim Pfad As String

Pfad = App.Path

If Not Right(Pfad, 1) = "\" Then Pfad = Pfad & "\"

Set DB = New ADODB.Connection

DB.CursorLocation = adUseClient
DB.Provider = "Microsoft.Jet.OLEDB.4.0"
DB.Open Pfad & "DB\db1.mdb"

Set RS = New ADODB.Recordset

RS.Open "SELECT * FROM Tabelle1 ", DB, adOpenDynamic, adLockOptimistic

End Sub
 
Danke für deine Mühen aber irgendwie hab ich jetzt doch das Gefühl das du mich falsch verstehst :confused:

Ich will keine DB öffnen - sondern darauf zugreifen. Und das mache ich mit dem DataAccess Objekt. In diesem Objekt gebe ich einen DatabaseName (Der Pfad zu meiner Datenbank) und eine Recordsource (Die entsprechende Tabelle in meiner Datenbank) an.
Das habe ich schon tausendmal ohne Probleme gemacht....aber bei meinem derzeitigen Projekt geht es eben nicht mehr sobald ich eine exe daraus mache. Dann bekomme ich die Fehlermeldung wie oben beschrieben. (In der Projektumgebung unter VB funktioniert aber alles)

:(
 
Da es (warum auch immer) mit den relativen Pfaden das beschriebene Problem gab...habe ich nun einfach direkte Pfade angegeben. :(
 
Zuletzt bearbeitet:
Zurück