Requete et formulaire

FlyingAlex -  
Gaunts Messages postés 1125 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai effectue la requête suivante :
SELECT Max([Master Table].[Part Number]+1) AS [Part NumberOfMax]
FROM [Master Table];

Qui me permet de prendre la plus grande valeur d'une colonne d'une table et de lui ajouter 1.

Le but est que cette valeur apparaisse ensuite dans mon formulaire, et pas moyen d'y arriver (je ne peux pas passer par la table car la requête est elle même définie grâce a la table).

La seule chose que j'arrive a faire est d'insérer un sous formulaire dans le formulaire avec la valeur en question, mais je suis bloqué la.

Je pense que la méthode ouvrir le formulaire, ouvrir le sous formulaire, copier la valeur de la textbox du sous formulaire, la mettre dans la textbox voulue et le tout en cacher est un peu bourrin, si vous avez des idées je suis (très) preneur. J'ai deja regarder pour effectuer la requete sous vba mais ca m'a l'air compliqué...

Merci

FlyingAlex

PS : désolé du manque d'accent, clavier américain

Edit : je suis sur Access

3 réponses

Gaunts Messages postés 1125 Date d'inscription   Statut Membre Dernière intervention   116
 
Salut,

Si j'ai bien compris tu veux afficher cette valeur dans une textbox?
Si c'est le cas je pense qu'il faudra passer par du vba.
1
FlyingAlex
 
Oui plus ca va, et plus je me dis que ca va devoir se faire comme ca.... je cherche comment faire en ce moment meme mais pas simple du tout. L'idee est pourtant simple, mais pas moyen de mettre un code dessus

J'essaie des truc du genre

Dim Enr As Recordset
Set Enr = CurrentDb.OpenRecordset("SELECT Max([Master Table].[Part Number]+1) AS [NewPN] FROM [Master Table]")

Mais ca ne donne rien
0
Gaunts Messages postés 1125 Date d'inscription   Statut Membre Dernière intervention   116
 
Re.
Tu travailles sous quelle version d'access?
Openrecordset n'effectue pas une requête SQL, elle ne prend en paramètre que la table qu'elle va ouvrir.
Pour effectuer une requête SQL, il faut utiliser DoCmd.Runsql "ta_requête".

Dans ton cas, il faudra parcourir la table en VBA, et récupérer la valeur manuellement pour l'assigner à ton champ texte.
Pour te déplacer dans une table:
Dim Enr As DAO.Recordset2 
set Enr = Currentdb.OpenRecordset("Master Tabe") 

Enr.MoveFirst
puis
Enr.MoveNext
. Si tu as toujours des questions sur ce qu'il faudra faire n'hésite pas
0
FlyingAlex
 
En fait, ce que je veux, c'est recuperer la valeur la plus importante de la colonne, lui ajouter un et pui la rentrer dans le textbox. Si tu vois comment faire sans requete, tu me sauve je crois....
0
Gaunts Messages postés 1125 Date d'inscription   Statut Membre Dernière intervention   116
 
Tu peux essayer ça?
Private Sub Form_Load()   

    Dim Enr As dao.Recordset2   
    Dim max As Integer   
       
    Set Enr = CurrentDb.OpenRecordset("Master Table")   
        
    max = 0   
    Enr.MoveFirst   
    While (Enr.EOF = False)   
        If (Enr.[Part Number] > max) Then   
            max = Enr.[Part Number]   
        End If   
        Enr.MoveNext   
    Wend   
    Me.zoneTexte.Value = max + 1  
      
End Sub   
Pas testé.
Me.zoneTexte.Value
Remplace zoneTexte par le nom de ta textbox.
Pareil avec le nom de la table et du champ j'ai utilisé "Master Table" et "Part Number" ici
0
FlyingAlex
 
Alors ca bug. Message : Compile error : User - defined type non defined pour Enr As DAO.Recordset2
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Tu travailles avec quoi ?

Xavier
0
FlyingAlex
 
Bonjour Xavier

Je suis sur Access
0
Gaunts Messages postés 1125 Date d'inscription   Statut Membre Dernière intervention   116
 
Re,

On s'est embêtés pour rien, voila une méthode beaucoup plus simple:
https://forums.commentcamarche.net/forum/affich-19935390-access-lien-entre-query-et-formulaire#4

Je ne connaissais pas la fonction
0