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 6 et antérieur Discussion :

[VB 6.0 + SQL Server] - Problème de controle de doublons dans une requete SQL


Sujet :

VB 6 et antérieur

  1. #1
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Points : 85
    Points
    85
    Par défaut [VB 6.0 + SQL Server] - Problème de controle de doublons dans une requete SQL
    Bonjour à vous ,

    voila j'ai une application VB liée à une base de données SQL Server. je voudrais pouvoir insérer des enregistrements dans la base via des requetes SQL tout en controlant si l'identifiant n'existe pas déja auparavant. voici la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set rsAjoutedition = New ADODB.Recordset
        Set verifEdit = New ADODB.Recordset
        rq = "SELECT COUNT(codeEdition) as somme,codeEdition FROM EDITION WHERE codeEdition = '" & txtcodeedition.Text & "' GROUP BY codeEdition"
    puis je controle la somme avec ces quelques lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If verifEdit!somme > 0 Then
            MsgBox "Edition déja existante !"
            Else
                resultSql = "INSERT INTO EDITION VALUES ('" & txtcodeedition & "','" & txtlibedition & "')"
                rsAjoutedition.Open resultSql, Connexion, adOpenStatic, adLockOptimistic
        End If
    lorsque somme > 0 le controle marche très bien, cependant lorqu'il ne trouve pas de valeur identique, j'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BOF ou EOF est égal à True ou l'enregistrement actuel à été supprimé. L'opération demandée nécessite un enregistrement actuel.
    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 086
    Points : 16 693
    Points
    16 693
    Par défaut
    If verifEdit!somme > 0 Then
    Ou est l'open de ta table ?
    Je vais supposer que tu as oublié de nous mettre la ligne (mauvais copier/coller sûrement ) et que le champs somme ne peut être égale à 0.

    Donc, si verifEdit!somme= 0 l'open a echoué donc tu demandes une verification d'un champs sur une table dont la requette n'a pas renvoyée d'enregistrement, donc EOF = true.
    Je verai plutôt cette façon de faire.
    Gérer l'erreur pouvant arriver.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set rsAjoutedition = New ADODB.Recordset
    Set verifEdit = New ADODB.Recordset
    rq = "SELECT COUNT(codeEdition) as somme,codeEdition FROM EDITION WHERE codeEdition = '" & txtcodeedition.Text & "' GROUP BY codeEdition"
    On Error Resume Next
    verifEdit.open rq, Connexion, adOpenStatic, adLockOptimistic
    verifEdit.Movefirst
    If Err Then
     Err.Clear
     resultSql = "INSERT INTO EDITION VALUES ('" & txtcodeedition & "','" & txtlibedition & "')"
     rsAjoutedition.open resultSql, Connexion, adOpenStatic, adLockOptimistic
     rsAjoutedition.Close ' Il me semble ??
     Else
     MsgBox "Edition déja existante !"
    End If
    Bon, pas bon
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Points : 85
    Points
    85
    Par défaut
    Merci à toi ProgElecT, j'ai testé et sa marche impeccable en effet je n'avais pas du tout pensé aux gestions d'erreurs ! Merci bien d'avoir pris un peu de ton temps pour te pencher sur mon problème

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

Discussions similaires

  1. probléme dans une requête sql server
    Par red_one dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/06/2009, 09h15
  2. probléme de requete SQl dans une base SQL Server
    Par sasuma dans le forum Développement
    Réponses: 7
    Dernier message: 09/05/2009, 17h09
  3. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  4. [IIS][SQL Server] Problème de chaine de connexion dans web.config
    Par skystef dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/02/2007, 13h57
  5. % dans une requete SQL-Server
    Par 18Marie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/10/2006, 13h02

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