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

Access Discussion :

Insertion base de données avec condition


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut Insertion base de données avec condition
    Bonjour,

    Je travaille sur une bonne de dialogue avec 4 comboBox. Chaque combobox corresponde respectivement au champs Nom,Adresse,Ville,Code postal.

    La table correspondant est la table "liste client" dans laquelle on retrouve les champs ID, Nom, Ville, Code postal, Nombre affaires, Adresse.

    Je récupère la sélection des combobox dans des cellules sur une feuille devis, que la sélection soit faite à la main ou sélectionné dans la liste.

    Si l'utilisateur à rentré les champs à la main, c'est que cela correspond à un nouveau client.

    J'aimerais par une requête comparer les valeurs des 4 cellules au 4 champs et si parmi les 4 comparaisons il y en a une deux différentes, la requête insère automatiquement les 4 champs dans la base de donnée ainsi qu'un nombre d'affaire de 1.

    Pourriez vous m'aider, car je débute dans le SQL, les sous requête de insert, select et de condition en même temps ne sont pas encore à ma portée !

    Cordialement, Simsim

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Bonjour

    ce serait bien de lire les règles du forum avant
    par exemple :
    + quel est le SGBD


    Citation Envoyé par simsim1 Voir le message
    Bonjour,
    La table correspondant est la table "liste client" dans laquelle on retrouve les champs ID, Nom, Ville, Code postal, Nombre affaires, Adresse.

    Si l'utilisateur à rentré les champs à la main, c'est que cela correspond à un nouveau client.
    Mais l'utilisateur peut très bien indiqué quelque chose qui existe déjà (4 champs identique. Que faut-il faire ? [SQL ne sait pas si les champs sont choisis ou tappés ]

    Citation Envoyé par simsim1 Voir le message
    J'aimerais par une requête comparer les valeurs des 4 cellules au 4 champs et si parmi les 4 comparaisons il y en a une deux différentes, la requête insère automatiquement les 4 champs dans la base de donnée ainsi qu'un nombre d'affaire de 1.
    2 sur 4, mais que faire s'il y a un, 3 ou 4 identique ?

    Et pourquoi 2 sur 4, A priori si quelque chose est différent c'est quelqu'un d'autre ? ou il a déménage (mais au vue de la structure de la base, cela ne change rien)

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    En fait sil y a un champs différent, par exemple le nom de l'entreprise, ladresse sera logiquement différente, peut etre pas la ville, ni le code postal donc on envoie les 4 champs dans la base.

    Si le nom n'est pas différent, que l'adresse, la ville et le code postal sont différents, cela signifie que c'est une agence d'une même entreprise mais dans une ville différente, donc c'est pas pareille à partir du moment ou il y un des 4 champs qui est différent par rapport à la base, c'est un nouveau client.

    On ajoute dans tout les cas les 4 champs à la base ainsi qu'une incrémentation du nombre d'affaire de 1.

    J'étais parti sur cette idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Insert into liste client(Nom,Ville, Code postal, Adresse, nombre affaires) values ('SCREG','Abbeville','80100','8 rue du chateau',1) wher not (Nom='SCREG') or not (Adresse='8 rue du chateau') or not (Ville ='Abbeville' ) or not (Code postal='80100')
    mais ça ne marche pas.

    Voyez vous ce que je veux faire ?

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    Wolo laurent,

    Est ce que je peux inserer ton code dans une macro ??

  5. #5
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Quel est le SGBD ???

    cela sent le ACCESS

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    openoffice

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par simsim1 Voir le message
    Wolo laurent,

    Est ce que je peux inserer ton code dans une macro ??
    Oui si Acces n'est utilisé que pour l'affichage.
    Non, si la base de données est ACCESS.

    Essaie de remplacer les @variables par des variables généralement sous VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IF NOT EXISTS(
    SELECT Nom, Ville, [Code postal], [Nombre affaires], Adresse
    FROM Client
    WHERE  Nom + Ville + [Code postal]+[Nombre affaires] + Adresse = @Nom + @Ville + @[Code postal]+@[Nombre affaires] + @Adresse
    )
    INSERT INTO Client(ID,Nom,Ville,[Code postal],[Nombre affaires],Adresse)
    VALUES(@id,@Nom + @Ville + @[Code postal]+@[Nombre affaires] + @Adresse

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Quel est le SGBDR que vous utilisez ?
    Est ce que vous connaissez la methode de mérise ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    create procedure sp_client_add
     @nom varchar(50),
     @Ville varchar(50),
     @[Nombre affaires] int,
     @Adresse Varchar(96)
    as
     
    if not exists(
    select Nom, Ville, [Code postal], [Nombre affaires], Adresse
    from Client
    where  Nom + Ville + [Code postal]+[Nombre affaires] + Adresse = @Nom + @Ville + @[Code postal]+@[Nombre affaires] + @Adresse
    )
    insert into Client(ID,Nom,Ville,[Code postal],[Nombre affaires],Adresse)
    Values(@id,@Nom + @Ville + @[Code postal]+@[Nombre affaires] + @Adresse
    Voici sous SQL Serveur.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/04/2013, 22h38
  2. [MySQL] Problème pour l'insertion dans une base de données avec variables $_POST
    Par hakkio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/03/2012, 17h04
  3. Réponses: 19
    Dernier message: 27/10/2011, 14h01
  4. Réponses: 2
    Dernier message: 25/05/2011, 15h36
  5. Réponses: 7
    Dernier message: 01/12/2009, 15h10

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