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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 376 fois - Téléchargée 23 fois

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

Ajouter un commentaire Commentaires
13emevirus Messages postés 2 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 juin 2008
16 juin 2008 à 10:49
Peut on utiliser ce code pour se connecter a une autre base de donnees access ?
capricorne83 Messages postés 48 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 15 novembre 2013
23 janv. 2007 à 12:40
En Fait j'ai ecrit ce truc la pour une copine qui utilise plusieurs bases de donnees dont je ne connaissais pas les noms. une fenêtre liste les bases présentes dans le répertoire de l'application et met à jour le fichier .ini pour définir la base par défaut.
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
23 janv. 2007 à 11:31
Le titre, no comprendo.
Expliques claro ce que tu veux ressortir par ta source, car comme Renfield le signale il s'agit d'une simple connexion vers une BDD, le terme "A CHAUD", ???
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
22 janv. 2007 à 13:02
Pourquoi aurait-on besoin de relancer l'application ?

on ne fait qu'ouvrir une autre connexion vers une BDD...

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.