frmLogin

Alfred_

Erfahrenes Mitglied
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):
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
Für jede Hilfe bin ich dankbar!
 
Soweit mir bekannt ist lässt VB.net nur Klassen als Startobjekte zu dass müssen nicht unbedingt Form-Klassen sein.

Grüsse bb
 

Neue Beiträge

Zurück