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

VBScript Discussion :

Incrémentation de BDD Excel suite impression étiquette


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut Incrémentation de BDD Excel suite impression étiquette
    Bonjour à tous,

    Voilà j'utilise le logiciel BARTENDER pour imprimer des étiquettes de numéro de série de divers produits, qui se connecte à une base de donnée Excel.
    Dans mon exemple, ce sera des voitures pour que ce soit plus facile pour tout le monde...

    Voici ma base de donnée type excel :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Réf	          Modèledebase	      Incrément
    CLIOROUGE	          CLIO	              250
    CLIOVERTE	          CLIO	              250
    CLIOBLEU	          CLIO	              250
    CLIORS	          CLIO	              250
    TWINGORROSE	  TWINGO	              125
    TWINGO NOIRE	  TWINGO	              125
    MEGANEWRC	  MEGANE	              513
    MEGANELUXE	  MEGANE	              513
    Fonctionnement :

    Lorsque j'imprime une étiquette de numéro de série pour une voiture, le soft Bartender se connecte au fichier excel et incrémente l'incrément du modèle de base, donc toutes les réf possibles pour ce modèle.
    Exemple : si j'imprime une clio, l'incrément passe de 250 à 251 pour les réf "CLIOROUGE", "CLIOVERT", "CLIOBLEU", "CLIORS"....
    De manière à ce que n'importe quelle Clio ai un numéro de série unique quelque soit la couleur.

    Voici mon code VBScript dans bartender :

    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
    19
    20
    21
    22
    23
    24
    25
     
    'Called for each new record read from the current database selected.
     
    'Define the object names.
    dim objConn
    dim strConn
    dim rs
     
    'Define the database connection parameter constants.
    Const adOpenStatic = 3
    Const adLockOptimistic = 3
    Const adCmdText = &H0001
     
    'Connect to the Excel file.
    Set objConn = CreateObject("ADODB.Connection")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Seagull\BDD BARTENDER.xls';Extended Properties=""Excel 8.0;HDR=YES;"""
     
    'Create a record set of one record which is the current record being printed.
    Set rs = CreateObject("ADODB.Recordset")
    rs.open "SELECT * FROM [Sheet1$]", objConn, adOpenStatic, adLockOptimistic, adCmdText
    rs.Find "Réf = '" & Field("Sheet1$.Réf") & "'"
     
    'Set the "Printed" field of the record to be "YES" thus flagging it as having been printed.
    rs.Fields("Incrément") = (rs.Fields("Incrément").value + 1)
    rs.Update
    Ce code fonctionne, il incrémente mais sur la ligne de réf "Cliorouge" par exemple uniquement, pas sur toutes les clio...

    Avez-vous une idée de comment faire pour l'adapter en conséquence ?

    Merci pour votre précieuse aide !

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 152
    Points
    17 152
    Par défaut
    Salut, bienvenue sur DVP

    Je pense qu'il te faut faire la requête d'ouverture de la table sur le champs Modèledebase, lire et incrémenter de + un dans une variable, puis boucler sur toutes les lignes d'enregistrement en actualisant le champs Incrément.
    Dans ton exemple Modèledebase = "CLIO", en sortie de bouclage, tous les Modèledebase CLIO de n'importe quelle couleur auront pour champs Incrément = 251.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonjour et merci ProgElecT,

    En effet la méthode me semble pas mal du tout

    J'essaye de coder tout çà même si je n'ai pas l'habitude de VBScript et je viens au nouvelles...

    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bon, j'essaye avec celà mais j'ai une erreur " OnNewRecord(Line 22): : Type incompatible: '[string: "Modèledebase = 'X2'"]' "

    Voici mon 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    'Called for each new record read from the current database selected.
     
    'Define the object names.
    dim objConn
    dim strConn
    dim rs
    dim valeurincrementee
     
    'Define the database connection parameter constants.
    Const adOpenStatic = 3
    Const adLockOptimistic = 3
    Const adCmdText = &H0001
     
    'Connect to the Excel file.
    Set objConn = CreateObject("ADODB.Connection")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Seagull\BDD BARTENDER.xls';Extended Properties=""Excel 8.0;HDR=YES;"""
     
    'Create a record set of one record which is the current record being printed.
    Set rs = CreateObject("ADODB.Recordset")
    rs.open "SELECT * FROM [Sheet1$]", objConn, adOpenStatic, adLockOptimistic, adCmdText
     
    Do While "Modèledebase = '" & Field("Sheet1$.Modèledebase") & "'"
     
    valeurincrementee = (rs.Fields("Incrément").value) + 1
    rs.Fields("Incrément") = valeurincrementee 
     
    Loop 
     
    rs.Update
    Qu'est ce qui coince ?

    Merci

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 152
    Points
    17 152
    Par défaut
    Salut

    L'ouverture de ta table n'est pas bon.
    La requête doit être conditionnelle, ouvrir la table et me renvoyer toutes les lignes dont le champs Modèledebase = "CLIO"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.open "SELECT * FROM NomDeLaTable Where NomDuChant = '" & VariableContenantCLIO & "'", objConn, adOpenStatic, adLockOptimistic, adCmdText
    Dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Do While Not rs.EoF
    '........
    Loop
    lire le champs Incrément en lui ajoutant 1
    rs.Fields("Incrément") = val(rs.Fields("Incrément") + 1
    Enregistrer la ligne modifiéepasser à la ligne suivant En sortie de boucle, fermer la table
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Ok,

    Voici ma ligne de requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rs.open "SELECT * FROM [Sheet1$] Where Modèledebase = '" & Sheet1$.Modèledebase & "'", objConn, adOpenStatic, adLockOptimistic, adCmdText
    Mais j'ai une erreur sur cette ligne :

    OnNewRecord(Line 22): rs.open "SELECT * FROM Sheet1$ Where Modèledebase = '" & Sheet1$.Modèledebase & "'", objConn, adOpenStatic, adLockOptimistic, adCmdText: Caractère incorrect
    Pourtant je ne vois pas de problème de caractère ?!


    ----------------------------------------------------------------
    EDIT
    ----------------------------------------------------------------

    Ca y'est ca fonctionne

    Voici la requête pour info :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rs.open "SELECT * FROM [Sheet1$] Where Modèledebase = '" & Field("Sheet1$.Modèledebase") & "'", objConn, adOpenStatic, adLockOptimistic, adCmdText
    Il me manquait donc juste le Field pour aller chercher la BDD...

    Merci pour ton aide !

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

Discussions similaires

  1. Impression étiquettes codes barre ?
    Par donia dans le forum QuickReport
    Réponses: 4
    Dernier message: 14/03/2016, 11h20
  2. Réponses: 1
    Dernier message: 15/03/2013, 13h28
  3. [Excel]Suite de noms de cellules
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2006, 14h16
  4. [Vba] BDD : Excel + Access + Vba
    Par Emcy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2005, 11h23
  5. Transformer une Bdd Excel en Bdd Access
    Par Golork dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/08/2005, 17h40

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