Connexion "a chaud" sur une autre base de données

Contenu du snippet

Ce code permet de se connecter à une autre base de données (type SQL ou ACCESS) sans avoir à quitter l'application

Source / Exemple :


Le Sub Main du module general pour la connexion initiale
Sub Main()
'Je verifie si c'est le premier lancement
'le fichier video.ini contient l'info du type de base
'ici 1-->Access 2-->Sql
Open "c:\program files\videotheque\video.ini" For Input As #1
Line Input #1, typebase
typedebase = Mid(typebase, 17, 18)
Line Input #1, NomdeBase
NomdeBase = Mid(NomdeBase, 13, 18)
'Line Input #1, Majorite
'Majorite = Mid(Majorite, 13, 18)
Close
If NomdeBase = "" Then NomdeBase = "films.mdb"

If CnImport.State = adStateOpen Then CnImport.Close: Set CnImport = Nothing
CnImport.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\Program Files\Videotheque\" & NomdeBase

Select Case typedebase
    Case 1
        frmconnexion.typeconnexion = "Access"
        If Cn.State = adStateOpen Then Cn.Close: Set Cn = Nothing
        Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=c:\Program Files\Videotheque\" & NomdeBase
    Case 2
        frmconnexion.typeconnexion = "Sql"
        If Cn.State = adStateOpen Then Cn.Close: Set Cn = Nothing
        With Cn
            .Provider = "SQLOLEDB"
            .ConnectionString = "datasource=DSN=FILMS;" & _
                                "server=; user id=sa;" & _
                                "initial catalog=FILMS"
            .Open
        End With
        With cmd
            .ActiveConnection = Cn
            .CommandType = adCmdText
        End With
    Case Else
        frmconnexion.typeconnexion = "Access"
        Open "c:\program files\videotheque\video.ini" For Output As #1
        Print #1, "typeconnexion = 1"
        Print #1, "Nomdebase=" & NomdeBase
        Close
End Select

et le code dans la fenetre "connexion"

frmconnexion.typeconnexion = "Access"
        If Cn.State = adStateOpen Then Cn.Close: Set Cn = Nothing
        Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=c:\Program Files\Videotheque\" & File1.FileName
        NomdeBase = File1.FileName
        frmgestion.Caption = "  Accès Principal " & " Type de Base de Données : " & frmconnexion.typeconnexion & " --- Nom de la Base : " & NomdeBase

' y a du code entre bien sur mais il ne concerne plus la connexion donc je ne le mets pas

Open "c:\program files\videotheque\video.ini" For Input As #1
        Line Input #1, typedebase
        typedebase = Mid(typedebase, 17, 18)
        Line Input #1, NomdeBase
        NomdeBase = Mid(NomdeBase, 13, 18)
        Close
        Select Case typedebase
            Case 1
                typeconnexion = "Access"
                'NomdeBase = "Films.mdb"
            Case 2
                typeconnexion = "Sql"
        End Select

Conclusion :


Les informations concernant le type de Base (Access ou SQL)et ke nom de la derniere base utilisée sont stockees dans le fichier video.ini
Une fenêtre permet d'avoir toutes les bases access dans le répertoire courant. Un bouton valider contient les deux derniers parties du code

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.