L'opération doit utiliser une requête qui peut être mise à jour [Résolu]

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonsoir

J'ai une appliquation utilisant une bd access quand j'execute le prog je n'ai aucune erreur.

Après avoir crée un setup et deployé sur mon ordi (pour tester) quand je lance l'appliquation j'obtiens différentes erreurs
1 L'opération doit utiliser une requête qui peut être mise à jour
2 Impossible de supprimer dans les tables spécifiées
Merci

5 réponses

Messages postés
2098
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
25 mars 2020
89
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
Bonjour

J'ai trouvé la cause mais pas le remède.
Ce n'est pas à cause des requetes d'ailleurs quand je lance l'appliquation avec le visual il n'y a aucun problème mais si je fais un setup et le déploie il va installer la db (fichier mdb)
dans le dossier crée par le setup et la db est read only d'où la le message d'erreur.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
En continuant les recherches la raison est due à dans quel dossier l'appliquation est installé
Par défault c'est c\programfiles(x86)\dossierduaPP\
et justement à cette location la db est seulement en lecture seulement
Messages postés
2098
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
25 mars 2020
89
Bonsoir !
tu fais le setup avec quoi ?
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
47
avec inno setup compiler

la solution est de placer la db dans le dossier C:\Users\user\AppData\Roaming
et dans le code

Dim path As String
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\db1.mdb"
Dim base As String = "provider=microsoft.jet.oledb.4.0;data source=" & path
If Connection.State = ConnectionState.Open Then
Exit Sub
End If
Connection.ConnectionString = base
Try
Connection.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try