Requete SELECT avec Num automatique

Résolu
fonkwe Messages postés 3 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 24 juin 2012 - 4 nov. 2009 à 14:58
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

9 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 nov. 2009 à 15:21
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 nov. 2009 à 15:23
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
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
4 nov. 2009 à 23:58
Salut,

DATA.recordsource = "SELECT DCount('*','Table_Personne','Nom<''' & [Nom] & '''')+1 As Num, Nom, Prenom FROM Table_Personne;"
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 nov. 2009 à 12:54
DCount ?
Non accepté sous Access 2003 ou SQL Server (rien dans l'aide)
Peux-tu préciser quel moteur SQL tu utilises ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fonkwe Messages postés 3 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 24 juin 2012
5 nov. 2009 à 15:48
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.
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
5 nov. 2009 à 17:01
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...
0
cs_jpp81 Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 08:08
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
0
Niko96 Messages postés 4 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 20 juin 2012
20 juin 2012 à 14:19
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...
0
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'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.
0
Rejoignez-nous