Jag har ett program som ska anslutas till en databas i access och jag vill att man ska ange sökväg till databasen när man startar programmet första gången efter installationen. Efter omstart av programmet ska sökvägen finnas med. Hur gör man för att spara uppgifterna i Windowsregistret? Jag vill alltså inte ange DatabaseName i koden. Du kan enklast använda dig av kommandona SaveSetting och GetSetting i VB Exempel: Tack Ibbe, ditt förslag fungerade bra förutom att dialogrutan "Ange databas"öppnas vid start även om det finns uppgifter i registret om databasen. Har du något förslag? Hej. Man kan ju förenkla ned din kod något samt att användaren kommer nog reta sig på applikationen om han inte kan avbryta utan att dialogen kommer upp på nytt:Ange sökväg
Sv: Ange sökväg
SaveSetting enligt: SaveSetting appname, section, key, setting
t.ex: SaveSetting App.Title, "Settings", "DBMS", dbServer
där dbServer är sökväg och namn på din databas.
Databasen sökväg hämtas sedan med GetSetting:
dbServer = GetSetting(appname, section, key, [default])
t.ex: dbServer = GetSetting(App.Title, "Settings", "DBMS", "DBMS05")
där DBMS05 är default namn på databasen (optional).
AndersSv: Ange sökväg
<code>
Private Sub Form_Load()
Dim databas As String
databas = GetSetting(App.Title, "Settings", "databas")
If databas = "" Then
CommonDialog1.DialogTitle = "Ange databas"
CommonDialog1.Filter = "Databas|*.mdb"
CommonDialog1.ShowOpen
databas = CommonDialog1.FileName
While databas = ""
CommonDialog1.ShowOpen
databas = CommonDialog1.FileName
Wend
SaveSetting App.Title, "Settings", "databas", databas
End If
MsgBox databas
End Sub
</code>
/IbbeSv: Ange sökväg
mvh IvanSv: Ange sökväg
Kan man inte skriva:
databas = GetSetting(App.Title, "Settings", "databas", "") 'defaultvärde
Testa detta...
Sv: Ange sökväg
<code>
Private Sub Form_Load()
Dim databas As String
On error goto Load_Err
'Dessa egenskaper kan man sätta i designläge och ta bort dessa rader
CommonDialog1.DialogTitle = "Ange databas"
CommonDialog1.CancelError = True
CommonDialog1.Filter = "Databaser (*.mdb)|*.mdb|Alla filer (*.*)|*.*"
databas = GetSetting(App.Title, "Settings", "databas")
Do Until Len(databas) > 0
CommonDialog1.ShowOpen
databas = CommonDialog1.FileName
Loop
SaveSetting App.Title, "Settings", "databas", databas
Load_Exit:
Exit Sub
Load_Err:
Select Case Err.Number
Case cdlCancel '32755
Unload Me
Resume Load_Exit
Case Else
MsgBox Err.Description, vbCritical, App.Title & ":" & Err.Source
Resume Load_Exit
End Select
End Sub
MsgBox databas
End Sub
</code>