Requete SELECT avec Num automatique [Résolu]

Messages postés
3
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
24 juin 2012
- - Dernière réponse : fonkwe
Messages postés
3
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
24 juin 2012
- 24 juin 2012 à 12:37
Bonjour, J'ai un probleme pour moi insurmontable depuis des semaines.
Travaille sur un projet : BD Access et interface VB 6.
J'ai la table suivante dans la BD :

Nom | Prenom | Fonction
----------------------------------
MOUH | Ali | Agent entretien
ABOUE | Paul | Chef Secu
MARA | Serge | RPE
NIHO | | Agent entretien

J'utilise des controles DATA pour les echanges avec la BD et, j'aimerai charger mon DATA pour avoir le résultat :

Num | Nom | Prenom | Fonction
----------------------------------
1 | MOUH |Ali | Agent entretien
2 | ABOUE |Paul | Chef Secu
3 | MARA |Serge | RPE
4 | NIHO | | Agent entretien

avec une instruction du genre :

DATA.recordsource = "SELECT {Je ne sais pas quoi} As Num, Nom, Prenom FROM Table_Personne"

Donc, pour recapituler, j'aimerai me servir de mon DATA control pour avoir un nouveau champ "Numero Automatique" à partir d'une table de la base de données où le nouveau champ n'existe pas.
BD : Access
Interface : VB 6

Merci d'avance

David,
fonkwe@gmail.com
Afficher la suite 

9 réponses

Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
59
0
Merci
Salut
Access quelle version ?
Un controle DATA ? Connais pô : quel est le nom de l'OCX qui supporte ce composant ?
Parles-tu de "ADO Data" (d'ailleurs obsolète) ?
Ou de "Data Bound Grid" ?
J'ai un doute : Quelle est la version complète de ton VB6 ?
Es-tu sûr que tu parles de VB6 et pas de VBA (VB for Application) version 6 présent à l'intérieur de Access ou Excel ... ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
59
0
Merci
Enfin, à ma connaissance, les moteurs SQL ne savent pas numéroter les lignes à l'extraction.
Il te faudra peut-être changer de méthode d'accès à tes données en utilisant un RecordSet puis en envoyant les données vers une DBGrid ou autre --> Voir ADODB
Commenter la réponse de cs_Jack
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Salut,

DATA.recordsource = "SELECT DCount('*','Table_Personne','Nom<''' & [Nom] & '''')+1 As Num, Nom, Prenom FROM Table_Personne;"
Commenter la réponse de cs_Ayr
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
59
0
Merci
DCount ?
Non accepté sous Access 2003 ou SQL Server (rien dans l'aide)
Peux-tu préciser quel moteur SQL tu utilises ?
Commenter la réponse de cs_Jack
Messages postés
3
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
24 juin 2012
0
Merci
Bonjour a tous et deja, nerci pour vos precieuses participations.

Pour être precis dans mon probleme,
1- J'utilise une BD Access format 97 pour souvegarder mes données.
2- Je bosse avec VB6 pour l'interface. Voici comment je procède pour les échanges avec la BD via mon DATA controle :

[b]Data1.databasename = App.Path & ".\MaBD97.mdb"
Data1.Recordsource = "SELECT {Numerotation Automatique} As Num, Nom, Prenom, Fonction FROM TableDeLaBD WHERE ..." Data1.Refresh/b

Voici en gros comment je fonctionne pour les echanges avec la BD sans probleme; sauf qu'ici, je voudrais un nouveau champ {Num automatique} dans ma requete SELECT si possible.

Merci d'avance.
Commenter la réponse de fonkwe
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Salut jack,

[quote=jack]DCount ?
Non accepté sous Access 2003 ou SQL Server (rien dans l'aide) /quote

DCount est une fonction VBA Access que l'on peut aussi utiliser dans les requêtes --> DCount Function - Access 2003 VBA Language Reference

Donc à oublier sous tout autre système de base de données qu'Access.

Pas très jolie pour moi car trop spécifique et rend plus compliquée toute éventuelle futur portage Mais permet de résoudre ponctuellement ce problème.

Par contre sous Access 97... Impossible de s'avancer pour moi...
Commenter la réponse de cs_Ayr
Messages postés
32
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
25 novembre 2009
0
Merci
Salut
Si je comprend bien tu travaille avec du vieux vieux materiel. vb 6 acces 97 et DAO. Comme moi. J'ai fait une petite appli avec ça il y a quelque annee, et j'ai resolu un probleme un peu comme le tiens en creant une table intermediaire avec acces(Dans la structure meme de la base) et en la remplissant avec l'interface vb.Comme la table intermediaire tu y met d'abord un champ numerro auto tu devrai resoudre ton probleme.
Merci de me dire si ça marche
jpp
Commenter la réponse de cs_jpp81
Messages postés
4
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
20 juin 2012
0
Merci
Bonjour,

Je rebondis sur ce sujet car j'ai le même problème, sauf que ma requete est basée sur une table liée à une feuille excel ....ce qui complique grandement car je ne peut donc pas ajouter de champ dans la table, et de plus celle-ci ne comporte aucun champ sans doublons sur lequel je puis m'appuyer pour effectuer la méthode Dcount etc...
Est-ce que quelqu'un aurait une solution m'évitant de devoir passer par une table temporaire etc ?

PS: je rappel que le sujet de base est de pouvoir rajouter un champ type "NuméroAuto" dans une requête selection.

Par avance merci !

Quand on peut le plus, on peut le moins...
Commenter la réponse de Niko96
Messages postés
3
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
24 juin 2012
0
Merci
Bonjour,

J'aurai imaginé que le problème soit plus simple avec une table excel car tu peux y ajouter une colonne comme suis :
Sub InsertColonne()
    Dim NbrColonne As String
   
    NbrColonne = InputBox("Nombre de colonnes")
   
    If NbrColonne <> "" Then
        If IsNumeric(NbrColonne) Then
            Range("F1").Resize(, NbrColonne).EntireColumn.Insert Shift:=xlToRight
        End If
    End If
End Sub


Une fois la nouvelle colonne ajoutée, tu n'as plus qu'à la parcourir en y affectant l'index du compteur... Du coup pas besoin de Dcount!

Mais, avant que je ne raconte des bêtises, tu travailles directement en VBA Excel ou sous VB avec BD Excel?

David.
Commenter la réponse de fonkwe