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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 204 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
Messages postés
2
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
16 juin 2008

Peut on utiliser ce code pour se connecter a une autre base de donnees access ?
Messages postés
48
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2013

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.
Messages postés
280
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
18 mars 2009

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", ???
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
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.