Aider moi à créer un setup pour une application contenant une bd Access

Signaler
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012
-
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
-
Salut à ts;
je viens de construire mon premeier projet en vb.net; c'est une application contenant une bd Access. Tout va bien, au niveau de la conception qu'au niveau de l'execution.
Mais lorsque je fais le setup et après l'installation, je lance mon application, hop! il'y a un pb; message "une exception non gérée s'est produite dans votre application...".
est que quelqu'un peut me guider au remède! cest gentillllll...

14 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
ben, gère l'exception, ou règle la source de celle-ci ^^

(ou donne nous des details sur l'exception et l'endroit où elle se produit)

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

Merci pour tes remarques. Mais j'ai dit qu'au niveaux de la conception de l'application tout va bien, je peux executer mon application en conectant bd, et toute l'application marche normale.
le pb se passe après la création de setup et l'execution, c'est pour cela j'ai pas pu gérer la conception.
je signale même que ma bd est réferenciée au setup
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
impossible de t'aider davantage sans des détails sur le code incriminé ou sur l'exception

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Oui c'est vrai il faudrait un bout de ton code pour pouvoir mieux t'aider.

Sinon es tu sur qu'au moment du déploiement de ton logiciel avec sa base le chemin est correct et quel OS utilises tu SEVEN VISTA XP et la version 32 ou 64 bits ?

Si ton OS est du 64 bits il te faut faire une compilation explicitement 32 bits (x86) car les pilotes pour gérer une base access n'existe qu'en 32 bits et ne plus compiler en AnyCPU.

En attendant d'en savoir plus


bidouille007
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

le code si dessous est asseigné à 1 bouton de command pour nettoyer les tables. bien sur après la déclaration des varibles et importation des librairies:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim sql As String = "select * from resultas_de"
'resulta_de est table de bd

cn = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\tables des resultats.mdb;")
'table des resultas.mdb c ma bd
datset = New DataSet
sqlcommand = New OleDb.OleDbCommand
dataadapter = New OleDb.OleDbDataAdapter(sql, cn)
sqlcommand.Connection = cn
sqlcommand.CommandType = CommandType.Text
'pour nettoyer la table resultas_de
sqlcommand.CommandText = "delete * from resultats_de"
cn.Open()
sqlcommand.ExecuteNonQuery()
datset.Clear()
cn.Close()
'pour nettoyer la table frequence_de
sql = "select * from frequence_de"
dataadapter1 = New OleDb.OleDbDataAdapter(sql, cn)
sqlcommand.CommandText = "delete * from frequence_de"
cn.Open()
sqlcommand.ExecuteNonQuery()
datset.Clear()
cn.Close()
'pour nettoyer la table resultas_monais
sql = "select * from resultats_monais"
dataadapter2 = New OleDb.OleDbDataAdapter(sql, cn)
sqlcommand.CommandText = "delete * from resultats_monais"
cn.Open()
sqlcommand.ExecuteNonQuery()
datset.Clear()
cn.Close()
'pour nettoyer la table frequence_monais
sql = "select * from frequence_monais"
dataadapter3 = New OleDb.OleDbDataAdapter(sql, cn)
sqlcommand.CommandText = "delete * from frequence_monais"
cn.Open()
sqlcommand.ExecuteNonQuery()
datset.Clear()
cn.Close()
end sub

Je signale que j'utilise vista
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

En suivant les conseils de Mr Renfield; Aprés avoir géré l'exeption, j'obtiens 2 messages le 1er: impossible de supprimer dans les tables spécifiées. le 2eme:L'opération doit utiliser une requete qui peut etre mis à jour.
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Oki pour le code

L'erreur apparait à quel endroit du code ?

Par ailleurs avec quel outil fais tu ton setup ?


bidouille007
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
je me demande à quoi sert ta commande datset.Clear()

dans les déclarations c'est OK ces deux variables ?
Public commandSQL As New OleDbCommand c'est oki pour ca

Public ConnexionOLE As OleDbConnection c'est ok pour ca aussi

moi je fais comme ca pour executer mes commandes ?

commandSQL.CommandText = commande
commandSQL.Connection = ConnexionOLE
commandSQL.ExecuteNonQuery()

dernière idée pourquoi ouvrir et fermer sans cesse la base access ca te fait perdre du temps à chaque fois et comme tes commandes s'enchainent j'en vois pas trop l'interet ?

bidouille007
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

La première erreur apparait après la command datset.clear() utilisée pour supprimer des enregistrements de la table.La deuxième apparait dans un autre form, là ou j'inscrit des données dans ma bd. voici le code:

'Try
sqlcommand = New OleDb.OleDbCommand
sqlcommand.Connection = cn
sqlcommand.CommandText = "insert into resultats_de values ('" & i - 1 & "','" & i1 & "','" & i2 & "','" & i3 & "','" & i4 & "','" & i5 & "','" & i6 & "')"
cn.Open()

sqlcommand.ExecuteNonQuery()
'Catch ex As OleDbException
' MsgBox(ex.Message)
' Finally
cn.Close()

'End Try
Pour l'outil j'ai essaier avec vb.net 2008; inno setup et setup factory 8
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Merci de tes précisions mais je ne vois pas l'interet pour toi de faire la connexion à ta base à chaque fois, et pour utiliser une bdd access dans un projet VB.net je n'ai jamais fait de dataset.clear() donc essayes ton code en supprimant la chose.

Quant à l'ajout des données dans ta table, j'ai l'impression qu'il manque le nom des champs de ta table entre le nom de ta table et VALUES

En espérant que ca t'aide

bidouille007
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

Je vois bien la sérieusité de vouloir m'aider, merci... Pour la multi conection je tiendrai ça à la considération. Pour la command datset.clear() je l'utilise pour suprimer tous les enregistrements à la fois (datset c un objet de type dataset), et ça marche au compilation
Quant à l'ajout des données je pense pas la manque des champs sinon l'application ne s'executra jamais au niveau de la compilation.
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
je dis pas mais moi je ne l'utilise pas pour ca que je m'étonne

l'ajout de tes données c'est une commande SQL donc ca ne gene pas la compilation de VB d'autant plus que le commande est une chaine string

bidouille007
Messages postés
16
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
17 août 2012

Et alors d'ou viennenet ces erreurs, puisque j'obtiens tous ce que je veux au niveau de la compilation
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Je crois nouya que tu n'as pas du lire le tuto sur l'exploitation d'une base access au travers de vb.

Sinon saches que tes commandes SQL ne sont pas du tout contrôle par VB et c'est seulement à l'exécution de ton code que les commandes SQL sont interprétées pas avant.


bidouille007