begin process at 2010 03 21 11:49:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Convertir fonction VBA DMax pour VB6


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Convertir fonction VBA DMax pour VB6

jeudi 21 juin 2007 à 10:44:14 | Convertir fonction VBA DMax pour VB6

impact74

Bonjour à toutes et à tous !!!

Voilà je dois développer un programme en "VB6" qui interroge un base de données Access.
Dans cette interrogation je doit récupérer la valeur MAX d'une ligne dans une table.

Je sais que DMax (en VBA) récupère bien la valeur maximum d'une ligne. Le seule souci c'est que je suis obligé d'utiliser VB6.

Donc, je souhaiterai savoir si il y a une fonction équivalente en VB6 (et pas VB7 ni VB.NET ou autre chose), de la fonction DMax  qu'on utilise en VBA???

Si oui quel est cette fonction??
Si non est-t-il possible de créer une fonction équivalente?

PS : Je suis pas un expert en VB6 mais je me débrouille...

Merci d'avance.
Salutations sincères.

jeudi 21 juin 2007 à 10:50:06 | Re : Convertir fonction VBA DMax pour VB6

jmfmarques

Membre Club

Bonjour,

 

Crois-tu que Max et Min sont très différents de Dmax et Dmin ?

Regarde à Max et à Min dans ton aide en ligne...

jeudi 21 juin 2007 à 10:57:27 | Re : Convertir fonction VBA DMax pour VB6

Exploreur

Membre Club
Salut,

Si tu utilises une requête SQL pour lire dans ta base, je te conseil de regarder : Count
Cela te permet entre autre de connaître la valeur : Min / Max / Sum / Avg .... Enfin tu peux faire plein de chose avec....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 

jeudi 21 juin 2007 à 11:48:58 | Re : Convertir fonction VBA DMax pour VB6

impact74

Merci "jmfmarques" et "Exploreur" d'avoir répondu si rapidement...

J'ai donc regardé l'aide en ligne de VB6 pour la fonction MAX().

Corrigé moi si je me trompe ; cette fonction est utilisé dans une requête qui renvoie la valeur max dans un autre champ.
Ex :
' Renvoie les frais de port les plus élévés des commandes livrées au Royaume-Uni.
    Set rst = dbs.OpenRecordset("SELECT " _
        & "Max(Port)AS [Port élevé] " _
        & "FROM Commandes WHERE [Pays livraison] =" & " 'Royaume-Uni';")

Moi ce que je veux c'est récupérer la valeur max dans une variable pour l'utiliser plus loin dans le code.
De plus, j'ai trouvé une fonction équivalente à DCount en VB6 qui me convient et que j'utilise dans mon code. J'appele cette fonction avec :

result = DCount("[" & tranche & "]", "trancheWS", "[app] = '" & apptrch & "' AND [Datecnx] = #" & FormDate & "#")

' Fonction DCount(VBA) en VB6 :
' Compter le nombre d'enregistrement (via un champ) d'une table avec un critère

Public Function DCount(ByVal sChamp$, ByVal sTable$, ByVal sCritere$) As Variant
 
 ' Variables
 Dim m_bd As Database
 Dim Rq As Variant
 Dim sql
 
 ' Connexion à la base de données
 Set m_bd = OpenDatabase(sDbRev)
 
 'Selection des champs à compter
 sql = "SELECT " & sChamp & " FROM " & sTable
 
 ' Vérification des critères et compte les champs selon critère
 If sCritere <> "" Then sql = sql & " WHERE " & sCritere
 Set Rq = m_bd.OpenRecordset(sql, dbOpenSnapshot)
    If Rq.EOF Then
        DCount = 0
    Else
        Rq.MoveLast
        DCount = Rq.RecordCount
    End If
 Rq.Close

End Function

Je voudrai donc une fonction dans ce genre mais avec MAX. est-ce possible ???
jeudi 21 juin 2007 à 14:19:37 | Re : Convertir fonction VBA DMax pour VB6

jmfmarques

Membre Club
"Corrigez moi si je me trompe ; cette fonction est utilisée dans une requête qui renvoit la valeur max dans un autre champ. "

Oui ? et que fait Dmax ?
http://www.techonthenet.com/access/functions/domain/dmax.php

"In Access, the DMax function returns the maximum value in a specified set of records"

et que font Max et Min  (VB6) ?
"Returnthe minimum or maximum of a set of values contained in a specified field on a query".

                     et comment utilise-t-on Dmax (VBA) ?

DMax ( expression, domain, [criteria] )
expression is the field that you wish to find the maximum
value for.domain is the set of records. This can be a table or a query name.
criteria is optional. It is the WHERE clause to apply to the domain.

et comment utilise-t-on Max en VB6 ?
Max(expr)

The expr placeholder represents a string expression identifying the field that contains the data you want to evaluate or an expression that performs a calculation using the data in that field. Operands in expr can include the name of a table field, a constant, or a function (which can be either intrinsic or user-defined but not one of the other SQL aggregate functions).

Euh.... kif kif...(du moins pour moi...)

vendredi 22 juin 2007 à 00:25:20 | Re : Convertir fonction VBA DMax pour VB6

MPi

Corrigé moi si je me trompe ; cette fonction est utilisé dans une requête qui renvoie la valeur max dans un autre champ.
Ex :
' Renvoie les frais de port les plus élévés des commandes livrées au Royaume-Uni.
   
Set rst = dbs.OpenRecordset("SELECT " _
        & "Max(Port)AS [Port élevé] " _
        & "FROM Commandes WHERE [Pays livraison] =" & " 'Royaume-Uni';")


En fait, ce n'est pas un autre champ, mais une étiquette temporaire
La valeur Max que tu cherches est donc
ValeurMax = rst![Port élevé]

Sous SQL, je sais qu'il existe aussi Top qui permet de rechercher plusieurs valeurs, comme les 5 plus grandes valeurs... Select Top 5 ...

MPi
vendredi 22 juin 2007 à 13:10:15 | Re : Convertir fonction VBA DMax pour VB6

impact74

Merci à tous pour vos réponses !!!

Je ne savais pas qu'on pouvait récupérer des données dans une variable comme ceci :
ValeurMax = rst![Port élevé]
rien que cette ligne m'a permis de débloquer un certain nombre de pb.

Mais j'ai encore un petit souci...

La fonction MAX récupère bien la valeur maximum, mais par colonne (champ).
Moi ce que je souhaite c'est, récupérer la valeur maximum d'une seule ligne et faire une boucle, afin de récupérer la valeur max de chaque ligne de ma table...

Est-ce que c'est possible?...

Désolé si je n'ai pas été clair dans mes explications

Merci pour votre aide !!!

 
samedi 23 juin 2007 à 11:40:23 | Re : Convertir fonction VBA DMax pour VB6

MPi

Ce n'est pas vraiment clair...

C'est normal que MAX ne concerne qu'une seule colonne. Les valeurs des autres champs de cette ligne ne sont pas nécessairement des valeurs MAX elles aussi. Si tu recherches les valeurs MAX de différentes colonnes, tu te retrouveras éventuellement avec un conflit de lignes.

Soit tu fais plusieurs requêtes chacune portant sur sa propre colonne,
Soit tu fais fais une requête qui sort les lignes selon certains critères, puis tu boucles chaque enregistrement et emmagasine les valeurs MAX dans des variables (ou un tableau)

Je ne vois pas d'autres alternatives pour le moment...

MPi


Cette discussion est classée dans : vba, fonction, vb6, convertir, dmax


Répondre à ce message

Sujets en rapport avec ce message

[Déplacé VB6 --> VBA] AJOUT DE FONCTION DANS VBA HORS MODULE [ par userrrqi115 ] Hello, Je me suis fait une petite liste de fonction dans un XLA, ces dernières me servent énormément dans Excel. Certaines d'entre elles me seraient d [déplacé VB.NET -> VBA] Excel VBA: Fonction et utilisation du Split [ par JeanFrancoisPain ] Salut à tous, Je cherche à faire une fonction. Je rentrerai seulement une cellule en paramètre et toutes mes cellules ont la meme forme: "XXX-XXX-8 Existe-t-il une fonction IsMember en VBA Excel ? [ par rfeuille ] Hello à tous, Je chercher une fonction du type "IsMember" dans VBA, mais je ne trouve pas. Voici ce que j'ai besoin de faire: - j'ai une variable a= Débutant fonction VBA [ par jeanjeandada ] Salut, Voilà j'aurais une petite question de base à vous poser sur le VBA : J'ais pris sur internet une fonction "FichOuvert" qui me renvoie FAlse o fonction en vba sur excel [ par WrestlingMan ] Bonjour !! J'èspere que vous pourez m'aider !! J'ai créer un code vba, une fonction pour être plus précis !! Malheuresement, cette fonction ne marche VBA + ADO vs VB6 + ADO [ par Calade ] Bonjour, J'ai un truc vraiment bizarre sous Access. J'attaque mes tables via ADO avec un bête select * from... Jusque là pas de problèmes. A un cert fonction "statique" en VB6 [ par Flocreate ] Bonjour, je cherche comment rendre une fonction(function) f_A déclarée dans une classe (module de classe) mc_A statique. attention, le terme statique Equivalent d'un Array en VB6 [ par dorras7 ] Bonjour, j'ai une fonction qui implémenté avec c# cette fonction prend comme paramètre un variable de type Array. j'ai besoin de convertir cette fonct Convertir des macros sous excel en une autre application [ par Moustic76767 ] Bonjour, J'ai développé une application sous VBA (Excel) basée sur 18 Userforms, 40 modules et environs 250 macros. Je me rends compte qu'excel de De vba excel à vb6 [ par nitho ] Bonjour à tous, j'ai réalisé une macros avec excel 2003. Elle comporte un userform mais je n'ai aucunement besoin de la feuille de calcul excel qui es


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales