Hi,
ich habe vor einiger Zeit begonnen mich mit .Net auseinanderzusetzen und ...wieder aus den versch. Gründen ad acta gelegt. Nachdem aber daran kein Weg vorüberführt, kramte ich meine Unterlagen wieder hervor. Ich möchte ein VB6 Programm (noch mit DAO-Recordsets) konvertieren. Es ist eine Desktopanwendung mit einer Access-Datenbank. Mit der Datenanbindung bzw. Datenbank- und Tabellenerstellung per Code habe ich keine Probleme.
Probleme gibt es mit dem "Login". Das fängt schon damit an, dass vbExpress08 als Startobjekt nur Formulare -soweit ich das Programm kenne - , VB6 hingegen auch Module zuläßt.
Auch hilft mir die msdn-Hilfe auch nicht richtig weiter, weil der im Login-Formular genannte Link "Tot" ist.
Es geht mir also darum, eine - von der Vorgehensweise her - , optimal funktionierende Routine in .Net zu implementieren. Wer kann mir dabei einen weiterführenden Link vermitteln. Anbei der VB6-Code (die erforderlichen API-Deklarationen sind natürlich nicht dabei):
Für jede Hilfe bin ich dankbar!
ich habe vor einiger Zeit begonnen mich mit .Net auseinanderzusetzen und ...wieder aus den versch. Gründen ad acta gelegt. Nachdem aber daran kein Weg vorüberführt, kramte ich meine Unterlagen wieder hervor. Ich möchte ein VB6 Programm (noch mit DAO-Recordsets) konvertieren. Es ist eine Desktopanwendung mit einer Access-Datenbank. Mit der Datenanbindung bzw. Datenbank- und Tabellenerstellung per Code habe ich keine Probleme.
Probleme gibt es mit dem "Login". Das fängt schon damit an, dass vbExpress08 als Startobjekt nur Formulare -soweit ich das Programm kenne - , VB6 hingegen auch Module zuläßt.
Auch hilft mir die msdn-Hilfe auch nicht richtig weiter, weil der im Login-Formular genannte Link "Tot" ist.
Es geht mir also darum, eine - von der Vorgehensweise her - , optimal funktionierende Routine in .Net zu implementieren. Wer kann mir dabei einen weiterführenden Link vermitteln. Anbei der VB6-Code (die erforderlichen API-Deklarationen sind natürlich nicht dabei):
Code:
Private Sub Main()
Dim bRet As Boolean, bIn As Boolean
' Prüfen, ob Anwendunng bereits gestartet
If App.PrevInstance Then
' Ja! Jetzt Fenster-Handle ermitteln
Dim RetVal As Long
RetVal = FindWindow(vbNullString, _
"Fenster-Titel Ihrer Anwendung")
If RetVal <> 0 Then
' Anwendung gefunden - jetzt aktivieren
Call SetForegroundWindow(RetVal)
End If
' zweite Instanz beenden
End
End If
'...
With App
gsStammdatDB = .Path & "\Stammdaten.mdb"
End With
'...
'Prüfen ob Datenbank vorhanden ist
If DatenBestandStammdatenPruefen Then
'Passwort abfragen
frmLogin.LogInMode = True
Load frmLogin
frmLogin.Show vbModal
If Not frmLogin.Cancelled Then
Load frmMain
frmMain.Show
Else
Unload frmLogin
GoTo ExitApp
End If
Unload frmLogin
Else
MsgBox "Die Datenbank ist nicht vorhanden," & vbCrLf & "das Programm wird beendet", vbOKOnly Or vbCritical, "Problem mit der Datenbank"
GoTo ExitApp
End If
'...
Exit Sub
'...
ExitApp:
If Not goWs Is Nothing Then Set goWs = Nothing
If Not godb Is Nothing Then Set godb = Nothing
End Sub
Code:
Public Function DatenBestandStammdatenPruefen() As Boolean
On Error GoTo Err_DatenBestandStammdatenPruefen
'...
Set goWs = DBEngine.CreateWorkspace("XYZ", "Admin", "", dbUseJet)
If Not FileExist(gsStammdatDB) Then ' Datei nicht vorhanden
MsgBox "Datenbank (Stammdaten) nicht vorhanden!", 64, "Information"
'Call StammdatenBankAnlegen
Else
Set godb = goWs.OpenDatabase(gsStammdatDB, False, False)
'Password geschützte DB öffnen
'Set goDb = goWs.OpenDatabase(gsStammdatDB, False, False, "MS Access;PWD=XYZ")
End If
DatenBestandStammdatenPruefen = CBool(Err.Number = 0)
'...
Done:
On Error GoTo 0
Exit Function
'...
Err_DatenBestandStammdatenPruefen:
MsgBox Error & "Datenbank (Stammdaten) konnte nicht geöffnet werden!" & vbCrLf & "Fehlernr :" & CStr(Err.Number), 16, "Problem"
Resume Done
End Function