Soyez le premier à donner votre avis sur cette source.
Snippet vu 26 258 fois - Téléchargée 21 fois
' Initialisation de la base de données et connexion Private Function Connexion_MDB() As OleDb.OleDbConnection ' tableau contenant l'ensemble des processus excel Dim monproc() As Process ' une instance parmis le tableau précédent Dim instance As Process ' création de l'objet Connection Dim connex As New OleDb.OleDbConnection ' initialisation de la chaîne de connexion au provider connex.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= " & CurDir() & _ "\" & "TVA.mdb;" ' on tente un établissement de la connection Try connex.Open() Catch ex As Exception ' si jamais ça ne passe pas, c'est que la base est corrompue ou absente, on la recrée ' Si le fichier existe, c'est qu'il est corrompu, donc on l'efface If File.Exists(CurDir() & "\TVA.mdb") Then ' On essaie de supprimer le fichier TVA.mdb Try ' mettre ses attributs à normal pour pouvoir l'effacer File.SetAttributes(CurDir() & "\TVA.mdb", FileAttributes.Normal) File.Delete(CurDir() & "\TVA.mdb") Catch err As Exception ' si jamais on arrive pas à supprimer le fichier, on prévient l'utilisateur MsgBox("Supression du fichier TVA.mdb échouée: " & Chr(13) & err.ToString(), MsgBoxStyle.Exclamation, "Erreur") End Try End If Dim appAccess As Access.Application ' on crée un objet de type BDD Access appAccess = CreateObject("Access.Application.11") ' on crée une nouvelle base de nom TVA.mdb appAccess.NewCurrentDatabase(CurDir() & "\TVA.mdb") ' comme le programme ne se ferme pas bien (j'ai du raté une instruction pour fermer l'application) ' on met fin aux processus MSACCESS en background monproc = Process.GetProcessesByName("MSACCESS") ' Si la liste n'est pas vide, on ferme toutes les applis concernées If monproc.Length <> 0 Then For Each instance In monproc ' si l'instance ne porte pas de nom, elle est en background et zombie, donc on met fin au processus If instance.MainWindowTitle = "" Then instance.Kill() End If Next End If ' on essaie de connecter à la base que l'on viens de créer Try connex.Open() Catch ex2 As Exception ' si ça échoue encore, on quitte directement le programme ' on quitte par un kill pour éviter de passer par la confirmation de sortie du programme (le handle closing() ) MsgBox("Erreur : " & ex2.ToString) MsgBox("Impossible de recréer la base de donnée." & Chr(13) & "L'application va se terminer !", MsgBoxStyle.Critical, "Erreur critique !") monproc = Process.GetProcessesByName("FactureSoft") ' Si la liste n'est pas vide, on ferme toutes les applis concernées If monproc.Length <> 0 Then For Each instance In monproc MsgBox(instance.Id.ToString) instance.Kill() Next End If End Try MsgBox("Création de la table, la base de données originale n'a pas été trouvée", MsgBoxStyle.Information, "BDD manquante") ' Création d'un objet commande Dim cmd As New OleDb.OleDbCommand ' on récupère la connexion dans l'objet cmd.Connection() = connex ' nouvelle requête de création de table, là c'est du SQL Access cmd.CommandText = "CREATE TABLE Facture(ID_Facture AUTOINCREMENT CONSTRAINT PKEY Primary Key, Fact_Montant_HT FLOAT, Fact_TVA FLOAT, Fact_Montant_TTC FLOAT, Fact_Four INTEGER, Fact_Mois INTEGER)" ' on lance la requête cmd.ExecuteNonQuery() ' on prend les même et on recommence pour les autres tables... cmd.CommandText = "CREATE TABLE Fournisseur(ID_Fournisseur AUTOINCREMENT CONSTRAINT PKEY Primary Key, Four_Nom VARCHAR(100), Four_Adresse VARCHAR(200))" cmd.ExecuteNonQuery() cmd.CommandText = "CREATE TABLE Mois(ID_Mois AUTOINCREMENT CONSTRAINT PKEY Primary Key, Mois_HT VARCHAR(30))" cmd.ExecuteNonQuery() ' Pour fermer la connexion à la base on fait juste un connex.Close(), mais ici on doit garder la connexion ouverte End Try Return connex End Function
27 juil. 2007 à 12:05
Merci pour votre aide éventuelle.
19 juil. 2007 à 17:57
merci filou , mais moi je veux bien savoir comment protéger le programme en générale, je veux que lorsque je clique sur l'application pour l'executer , cette derniere me demmande un mot de passe pour ouvrir le programme et appliquer ensuite le programme.moi je travaille avec visual studio 2005,
merci
18 juil. 2007 à 17:43
Essaye ça pour la protection de la BD Access si c'est bien ce que tu veut :
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sPath + ";Jet OLEDB:Database Password=tonMP"
Je ne me souvien pas bien mais le MP doit exister dans access.
18 juil. 2007 à 17:34
merci
18 juil. 2007 à 17:32
merci d'avance
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.