Jag har lite bekymmer med sökvägar när jag försöker installera mina program. Hej så här ser det ut: Mitt Förslag: Hej igen Tack för tipsen, jag ska testa dom så fort jag kommer hem. Hej Det är bara att lägga till en modul och klistra in koden i projektet. DatabaseName kommer då att bete sig som en variabel. Du kan tilldela den och du kan hämta värdet från den. Fast när du tilldelar den sparar den värdet i registret. När du hämtar den kollar det om det finns ett värde i registret. Saknas det retunerar den App.Path & "\Data.mdb". Om värde finns retuneras det.Alternativ till sökvägar?
Det är väl kanske framförallt en sökväg till en databas som inte vill.
Nu har jag sett många dialog rutor som talar om för mig att en viss sökväg är ogiltig.
Finns det något alternativ till sökvägar?
jag använder en sökväg för att tala om för en DAO var databasen finns.
/Mikael (trött)Sv: Alternativ till sökvägar?
Du kan väl installera DataBasen i App.Path dvs
i samma mapp som exefilen ligger i.
Eller har jag missförstått något ??
Sedan måste du kolla att du inte hårdkodat någon
sökväg,lätt gjort när man experimenterar.
Tex Data1.DataBaseName propertie skall vara tomt.
mvh
SvenSv: Alternativ till sökvägar?
Data1.DatabaseName = "D:\Osorterat\VisualB_project\Cyklon\data.mdb"
SQL$ = "SELECT*FROM tabdata where datum Like'"
SQL$ = SQL$ + Trim$(DBList1.Text) + "*'"
Data1.RecordSource = SQL$ + "order by datum"
Data1.Refresh
Inte bra alltså?
/Mikael Sv: Alternativ till sökvägar?
'Module: mdlSettings
Option Explicit
Public Property Get DatabaseName() As String
DatabaseName = GetSetting(App.Title, "Settings", "DatabaseName", App.Path & "\data.mdb")
End Property
Public Property Let DatabaseName(vData As String)
SaveSetting App.Title, "Settings", "DatabaseName", vData
End Property
'Form: Form1
Private Sub Form_Load()
Dim SQL As String
SQL = "SELECT *" & vbCrLf & _
"FROM tabdata" & vbCrLf & _
"WHERE datum Like '" & Trim$(DBList1.Text) & "*'" & vbCrLf & _
"ORDER BY datum"
Data1.DatabaseName = DatabaseName
Data1.RecordSource = SQL
Data1.Refresh
End SubSv: Alternativ till sökvägar?
Ett exempel på hur jag gör för att sökvägen skall bli rätt
till bifogade databaser,som ligger i samma mapp som exefilen
Global
Dim SearchPath As String,PathMinDb As String
Dim DbPlott As Database
i Form Load
SearchPath = App.Path
If Right$(SearchPath, 1) <> "\" Then _
SearchPath = SearchPath & "\"
PathMinDb = SearchPath & "MinDb.mdb"
dtaBasData.DatabaseName = PathMinDb
Set DbPlott = OpenDatabase(PathMinDb)
Set dtaPlott.Recordset = DbPlott.OpenRecordset _
("SELECT* FROM PLOTTDATA " & _
" ORDER BY KontoId,XCord")
dtaBasData.Refresh
dtaPlott.Refresh
mvh
SvenSv: Alternativ till sökvägar?
En liten detalj bara.
AH: Är det bara att lägga till en modul och knappa in ditt exempel?
Har aldrig jobbat med moduler, vet knappt vad det är.
SvenPon: Global? var skriver jag det? i general declarations?
Håll i tanken att jämfört med er så vet jag inte vad VB är förnågot.
Det brukar bli 10% programmering och 90% hjälpfiler och pellesoft.
/MikaelSv: Alternativ till sökvägar?
>Global? var skriver jag det? i general declarations?
Form1 är ett (1) exempel på Modul det finns många andra Moduler
tex BasModul.
Det skriver du överst i din FormModul, ja i general declarations
Med Global menas att variablerna når alla SubRutiner och
Functioner som finns i den FormModul där dom är deklarerade i.
Ex. Form1
Option Explicit
Dim DbPlott As Database
Dim SearchPath As String
Dim PathMinDb As String
mvh
SvenSv: Alternativ till sökvägar?
Så du behöver bara lägga till funktion för att tilldela DatabaseName ett värde och i installationen ange att dtabasen skall lägga sig i samma bibliotek som programet. Då kommer programet hitta databasen första gången det startar up och användaren har möjlighet att flytta databasen.