IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Probleme d'execution d'une requête sur Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut Probleme d'execution d'une requête sur Access
    Bonjour
    Je fais un programme permettant de louer un livre dans une bibliothèque.
    En fait, lorsque je clique sur le bouton:
    _si le livre n'est pas déjà loué: on insère le numéro de l'adhérent et aussi la date de l'emprunt.
    _si le livre est déjà loué: on enlève les champs du numéro de l'adhérent et de la date d'emprunt.

    Simple non ?
    et ba non ...
    J'ai un problème quand j'exécute ma requête: lorsque je compile sa marche, et si je réexécute le programme une 2nd fois, les modification dans la base de données faites lors de la 1ere exécution ne sont plus présente, je me retrouve avec la même base de données qu'au départ.
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub EmpRet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmpRet.Click
    If Exemplaire.Text.Length > 0 Then
    Dim cmd As OleDbCommand = MyConnexion.CreateCommand
    Dim trans As OleDbTransaction
    trans = MyConnexion.BeginTransaction
    cmd.Transaction = trans
    If Emprunter.Checked Then
    cmd.CommandText = "UPDATE EXEMPLAIRE SET NumEmprunteur =" & TxtAd.Text & ", DatePret = DATE() WHERE NumBD=" & NumBD.Text & " AND NumEx=" & Exemplaire.Text & ";"
    cmd.ExecuteReader()
    trans.Commit()
    ElseIf Rendre.Checked Then
    cmd.CommandText = "UPDATE EXEMPLAIRE SET NumEmprunteur =NULL, DatePret =NULL WHERE NumBD=" & NumBD.Text & " AND NumEx=" & Exemplaire.Text & ";"
    cmd.ExecuteReader()
    trans.Commit()
    End If
    Else : MsgBox("Veuillez selectionner une bande déssinée à louer ou à rendre")
    End If
    End Sub
    Normalement il n'y a pas de problème au niveau des requêtes, je pense que c'est juste au niveau de l'utilisation des oleDB de VB.

    Merci a vous tous

    EDIT: Je tiens à préciser que lorsque je fait une des deux commandes dans access, sa marche impeccable, même pas la peine de faire de commit etc... donc je ne vois pas ce qu'il faut faire de plus ( ou de moins ^^ ) merci

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Je pense que lorsque tu as ajouter ta DB dans le projet, tu as du par mégarde demander à faire un copie locale (dans le /BIN) de la base (c'est une "erreur" classique).
    Donc tu fais bien les updates mais dans une DB qui se trouve dans le /BIN du projet.

    Faut juste que tu modifies l'option "Copier dans le répertoire" qui doit trainer au niveau de tes datasets.

    Cdt.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    ok mais je vois pas ou c'est pour faire cette modif, tu peux me dire ou c'est ?
    merci

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Re.

    Sous VS2005, dans l'explorateur de solution, tu dois avoir ton dataset. Tu te mets dessus et c'est la propriété noté "Copier dans le répertoire de sortie".

    Cdt.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    je n'utilise pas de dataset( ou plutôt, plus maintenant, j'en avait un dans mon projet mais je l'ai supprimer car j'en avait plus besoin)

  6. #6
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Citation Envoyé par Noodles95 Voir le message
    je n'utilise pas de dataset( ou plutôt, plus maintenant, j'en avait un dans mon projet mais je l'ai supprimer car j'en avait plus besoin)
    Mais est-ce que la base est copiée dans le /BIN ou non ? Tu me mets un doute sur la source du probléme...

    Donc si je comprends maintenant tu passes par un connexion que tu déclares par code "à la main" ?

    Cdt.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    Oui, la base est copiée dans le /BIN et la connexion c'est moi qui la déclare comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MyConnexion As OleDbConnection
    Dim strcon As String
    MyConnexion = New OleDbConnection
    strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "bdtheque.mdb"
    MyConnexion.ConnectionString = strcon
    MyConnexion.Open()
    En tout cas, merci de m'aider comme tu le fais
    EDIT: Logiquement, il n'y a pas de dataset, sauf si quand j'importe la base de données dans mon projet je me trompe car Visual studio me propose d'en créer un. Je tiens aussi a préciser, que lorsque j'exécute mon programme via visual studio (F5), il se passe ce que je décrit, mais par contre lorsque j'exécute directement le fichier .exe qui se trouve dans /BIN, cela fonctionne et les modifications de la base de données sont bien prises en compte ... je n'y comprend plus rien ^^

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/01/2011, 11h59
  2. Probleme avec critere dans une requete sur access..
    Par emirov dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/04/2008, 23h11
  3. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  4. Aide pour une requête sur Access
    Par psgkiki dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/05/2007, 11h34
  5. Aide pour une requête sur Access
    Par psgkiki dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/05/2007, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo