Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BESOIN DE SUGGESTIONS


Information sur la source

Catégorie :Optimisation du code Classé sous : Tutoriel, suggestions, code Niveau : Débutant Date de création : 29/04/2008 Date de mise à jour : 05/05/2008 11:30:20 Vu / téléchargé: 3 874 / 214

Note :
Aucune note

Commentaire sur cette source (34)
Ajouter un commentaire et/ou une note


Description

Bonjour, cette source fait suite a mon message sur le Forum
http://www.vbfrance.com/infomsg_BESOIN-SUGGESTIONS-CODE_1122798.aspx

le but est de montrer ici les différentes méthode employées pour répondre à l'énoncé qui suit :

Soit un Form1 qui affiche les détails d'un facture.
Un textbox CcTxtClient, affiche le nom et numéro du client.
lorsque l'on clique sur le bouton CcBtnClient, une Form2 s'affiche.

Form2 contient la liste des clients de la base de données.
si nous avions déjà lié notre facture a un client, l'entrée correspondant à celui-ci doit être par défaut séléctionnée dans la ListView. Il m'est possible de presser Ok ou Cancel depuis la Form2, afin de mettre fin a la selection de mon client.

Form1.CcTxtClient doit bien evidemment refleter ma selection.
 

Conclusion

Vous trouverez une maquette de départ dans le Zip joint. il ne comprend pas grand chose, juste le strict nécessaire.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

05 mai 2008 11:30:20 :
Ajout de ma vision de la chose

Commentaires et avis

signaler à un administrateur
Commentaire de Renfield le 29/04/2008 14:57:35 administrateur CS

LIBRE_MAX a proposé :

Form1:
Private Sub CcBtnClient_Click()
    With Form2
        If .CcLst.ListItems.Count = 0 Then
            MsgBox "...non défini ou introuvable !", vbInformation, "..."
            Unload Form2
        Else
            .CcLst.ListItems(1).Selected = .CcLst.ListItems(1).EnsureVisible
            .Show vbModal
        End If
    End With
End Sub

-------------------------------------

Form2:
Private Sub CcBtnOk_Click()
    CcLst_DblClick
End Sub

Private Sub CcLst_DblClick()
Dim cCode As Long
Dim cNom As String
    On Error GoTo Handler
    With CcLst
        If .ListItems.Count <> 0 Then
            cCode = Mid$(.SelectedItem.Key, 2)
            cNom = .SelectedItem.Text
            
            Form1.CcTxtClient.Text = cCode & " - " & cNom
            Unload Me
        End If
    End With
Exit Sub
Handler:
    MsgBox Err.Description
End Sub

(Form_Load non recopié)

signaler à un administrateur
Commentaire de MadM@tt le 29/04/2008 16:35:41

Ahhhh le vilain Renfield, il poste une source juste pour avoir l'avis des autres. ça mériterait une punition héhé ;-)
c'est quand meme une activité punie par la loi !

signaler à un administrateur
Commentaire de Renfield le 29/04/2008 16:40:43 administrateur CS

pas pour avoir votre avis...
pour mettre du code a dispo en vue d'aprécier les differents points de vue sur ce probleme.

l'idée, c'est de tout condenser, au final.

disons, sur le fil ^^

signaler à un administrateur
Commentaire de LIBRE_MAX le 29/04/2008 18:34:34

Re-,
A supposer que mon CcTxtClient.Text  contient déjà  le nom ou le code complet du client (ou du fournisseur),ma requete ne m' enverra qu' une seule ligne.
Alors à moi de voir si j' affiche ma form2 ou pas.
Deux possibilités:
Soit j' affiche , ce qui permet à l' utilisateur de vérifier les infos (surtout si dans ma liste
j' ai d' autres données outre le code et le nom (asresse, Tel/Fax etc...)
Soit je n' affiche pas ma form2.Mais l' utilisateur risque de ne pas comprendre le pourquoi.

Cette deuxième solution est préconusée quand il s' agit de remplir une grille Détails facture
avec le code et nom article.Si le code est saisi en entier, on se contente vérifier son existante.
Si ma requete me renvoie une ligne, je passe outre l' affichage de la liste et j' insère directement
le produit  dans la grille.

Si tu as remarqué dans l' exemple  que j' ai donné, je me sert de la même form, pour lister
les clients ou les fourniseurs en vue d' une facture achat, ou vente ou avoir achat ou avoir vente
ou edition situation client ou edition situation fournisseur ou reglement facture client ou règlement
facture fournisseur et plein d' autre choses encore.Un simple tag me permet de savoir de quoi il S' agit.

signaler à un administrateur
Commentaire de LIBRE_MAX le 29/04/2008 18:45:33

Voici la sub qui me permet de remplir ma liste avec
comme paramètre ma chaine expression sql et
l' objet listview .


Public Sub GET_TIERS(xQuery As String, xLV As ListView)
   xLV.ListItems.Clear
   Dim rsT As Recordset
   Set rsT = pDB.OpenRecordset(xQuery, dbOpenSnapshot)
   With rsT
    On Error Resume Next
    .MoveFirst
    .MoveLast
    If .BOF And .EOF Then GoTo EEXIT
     Dim i As Integer
     i = 0
     .MoveFirst
    Do While Not .EOF
       i = i + 1
       xLV.ListItems.Add i, , ![code]
       xLV.ListItems(i).SubItems(1) = ![nom]
     .MoveNext
    Loop
   End With
EEXIT:
rsT.Close
Set rsT = Nothing

End Sub


A appeler dans Private Sub CcBtnClient_Click()
On rècupère le contenu de la zone
et on construit notre expression en tenant compte de ce contenu.


signaler à un administrateur
Commentaire de LIBRE_MAX le 30/04/2008 00:28:58

Beh c' est encore moi...
Quand je suis sur un truc, je m' y colle :-)
D' un autre côté, s' il s' agit d' un condensé, autant faire les choses correctement.
d' ou ma question:
Qu e se passera t- il si suite à

Form1.CcTxtClient.Text = cCode & " - " & cNom

l' utilisateur reclique sur le CcBtnClient
Si on s' en  tient à ce qu' on a prévu, c à d , récupèrer le contenu de la zone et faire une recherche (entière pour le code ou partielle pour le nom) , on ne trouvera jamais
123 - DUPOND Antoine par exemple.On a bien 123 comme code et DUPOND Antoine comme nom mais pas la comlnaison des deux.
123 - DUPOND Antoine n' étant pas numérique, il va chercher du coté des noms.Et c' est sûr qu' il ne trouvera pas.

Que prévoir alors dans ce cas ?
Ma suggestion:

Form1.CcTxtClient.Text = cCode & " - " & cNom
Form1.CcTxtClient.Tag = Form1.CcTxtClient.Text
Lorsqu' on clique sur rechercher, on vérifie si .Text=.Tag
ou non.
Premier cas: rien n' a changé =>on ne fait rien
Deuxième cas: l' utilisateur a reformuler sa recherche différement, on effectue la recherche.

La suite est facilement imaginable...






signaler à un administrateur
Commentaire de Renfield le 30/04/2008 06:22:11 administrateur CS

on peut redécouper les données, pour en extraire l'ID
j'airais aussi pu utiliser deux zones de texte, remarques

par contre, si on recliques sur CcBtnClient, il faut afficher la liste de tous les clients, et séléctionner dans cette liste celui qui est lié a la facture.

signaler à un administrateur
Commentaire de Brosske le 30/04/2008 09:33:48

Je pense qu'il faut simplement abandonner le listview et utiliser un autre controle qui permets de placer le curseur là ou l'on veut :-)

signaler à un administrateur
Commentaire de Renfield le 30/04/2008 09:38:19 administrateur CS

... ne peut on pas selectionner un item donné, dans un listview ?

signaler à un administrateur
Commentaire de Brosske le 30/04/2008 09:57:15

J'ai l'impression........

Par exemple avec un listbox on utilise :
listbox.listindex=x
et hop, le client est sélectionné :-)

Mais pour un listview je n'ai pas trouvé cette propriété.

signaler à un administrateur
Commentaire de Renfield le 30/04/2008 10:12:43 administrateur CS

propirété Selected des objets ListItem :

ListView1.ListItems( n ).Selected = True

signaler à un administrateur
Commentaire de drissou le 30/04/2008 10:17:44

Bonjour
j'arrive en retard..
pour ma part je créerai (et je l'ai déjà fait) un procédure publique dans form2 qui récupérerai le numéro interne du client choisi
du style

load Form2
form2.ProcTransmet NumClient
form2.show vbmodal


J'ai utilisé ceci pour qu'une feuille soit appelée de plusieurs feuilles différentes. J'ai donc introduit dans cette procédure une paramètre définissant la feuille appelante.
En fonction de la feuille appelante, losrque je clique sur le bouton OK, je tranmets à la feuille appelant le nouveu numéro interne du client

On aurait de la forme
select case Appelant
    case "feuille1"
         form1.MiseAjour (NumClient)
    case else
end select

dans form1 j'ai donc une procédure publique qui met à jour les données voulues, en focntion de NumClient..

J'espère avoir été assez clair..

Driss

signaler à un administrateur
Commentaire de Renfield le 30/04/2008 10:23:30 administrateur CS

l'idée est interessante.
on apercoit là l'une des problématique essentielle : la réutilisabilité, et l'intégration de/dans de nouvelles forms

signaler à un administrateur
Commentaire de LIBRE_MAX le 30/04/2008 10:41:57

Bonjour,
en restant sur le concept de la selection dans une listview,
on peut tout imaginer.
-Utilisation de deux Zone une pour code et l' autre pour le nom.
Faisable mais très couteuse en code.Car il faudra toujours mettre
à jour un control par rapport à l' autre, et faire la recherche à partir
de la zone qui vient être modifié.
-Le découpage est faisable avec Split sur " - ", et un test sur la première partie.

-Pour la recheche, dans mes applics j' utilise trois sorte de procèdures pour ça.

//Recherche dans la première colonne .Généralement l' ID.
Public Function RECHERCHER(xValeur As Variant, xListView As ListView) As Boolean
     Dim i As Integer
     Dim iC As Integer
   With xListView
     iC = .ListItems.Count
     If iC = 0 Then Exit Function
  
       For i = 1 To iC
          If .ListItems(i).Text = xValeur Then
             .ListItems(i).Selected = .ListItems(i).EnsureVisible
             RECHERCHER = True
             Exit For
          End If
       Next i
  
   End With
End Function

//Recherche dans un SubItem .Généralement le NOM en entier
Public Function RECHERCHER_(xValeur As Variant, xListView As ListView, xListsub As Integer) As Boolean
     Dim i As Integer
     Dim iC As Integer
   With xListView
     iC = .ListItems.Count
     If iC = 0 Then Exit Function
  
       For i = 1 To iC
          If .ListItems(i).ListSubItems(xListsub).Text = xValeur Then
             .ListItems(i).Selected = .ListItems(i).EnsureVisible
             RECHERCHER_ = True
             Exit For
          End If
       Next i
  
   End With
End Function

//Recherche Partielle dansdans un SubItem .
Public Function RECHERCHER_PART(xValeur As Variant, xListView As ListView, xListsub As Integer) As Boolean
     Dim i As Integer
     Dim iC As Integer
      Dim LenV As Integer
  With xListView
     iC = .ListItems.Count
     If iC = 0 Then Exit Function
     LenV = Len(xValeur)
       For i = 1 To iC
          If Left$(.ListItems(i).ListSubItems(xListsub).Text, LenV) = xValeur Then
             .ListItems(i).Selected = .ListItems(i).EnsureVisible
             RECHERCHER_PART = True
             Exit For
          End If
       Next i
  
   End With
End Function

Ainsi après avoir remplit ma listview je lance une recherche à partir du contenu de ma
zone de text.

Pour listr tous les Clients, je le fait mais uniquement si la zone de text est vide.

Pour l' ID, comme je l' ai dit précèdement, j' utilise un deuxi_me TextBox en arrière plan (visible=False).
Ainsi quand je fais
Form1.CcTxtClient.Text = cCode & " - " & cNom
Je fais aussi
Form1.TxtIdClient.Text = cCode
Ainsi sans devoir décomposer ma chaine, je peux rattacher la facture au client.

et p'ui c tout :-)

A+


signaler à un administrateur
Commentaire de Renfield le 30/04/2008 10:45:21 administrateur CS

hum!
Function FindItem(sz As String, [Where], [Index], [fPartial]) As ListItem
    Membre de MSComctlLib.ListView
    Recherche un élément dans la liste et renvoie une référence à cet élément.


pourquoi utiliser un textbox, si masqué... une varaibel publique serait surement plus appropriée, non ?

signaler à un administrateur
Commentaire de LIBRE_MAX le 30/04/2008 10:50:02

sûrement, un label est plus approprié.
Quand au FindItem, beh je prèfère des routines
personnalisée.De plus FindItem m' as fait tellement souffrir à mes débuts que je ne l' ai plus "revu" depuis :-)

signaler à un administrateur
Commentaire de LIBRE_MAX le 30/04/2008 10:52:54

un label et pas une variable,si je lie mes controls directement à la table.

signaler à un administrateur
Commentaire de Brosske le 30/04/2008 10:59:20

ok :-)

alors pourquoi ne pas mettre dans le form2_load :

if le_nom_a_ajouter = form1.nom_du_client.text then ListView1.ListItems( listview1.listitems.count-1 ).Selected = True


(je n'ai pas vérifié le syntaxe - dslé - je voulais juste montrer le principe)

signaler à un administrateur
Commentaire de Brosske le 30/04/2008 11:00:02

oups - donc ce code est a mettre juste avant le ors.movenext

signaler à un administrateur
Commentaire de Renfield le 30/04/2008 11:00:28 administrateur CS

ok, je voyais pas où tu souhaitais en vnir, précision utile

signaler à un administrateur
Commentaire de Renfield le 30/04/2008 11:13:00 administrateur CS

Brosske, ton code fonctionne, ok...

je fais le pont, je ne répondrai a cette problématique que Lundi

signaler à un administrateur
Commentaire de pluplu le 30/04/2008 22:06:02

Bonjour Renfield,
Je prend la cogitation en cours de route, perso j'utilise rarement le contrôle listview je préfère de loin le datagrid ou quelque chose de similaire comme le SCGrid http://www.scgrid.com/ sûrement plus souple que tous les autres. Le problème lorsqu'on utilise une form séparée pour rechercher un client c'est pour que se soit synchro avec la feuille appelante. J'ai retrouvé un exemple qui correspond à ce que tu veux faire, Dans la form de saisie de facture, j'ai un comboboxe avec la liste des clients par nom, ce qui convient pour quelques clients, mais si la liste s'allonge plus de 50 cela n'est pas top, alors avec un double clic sur le comboboxe, on ouvre une seconde fenêtre qui est composée d'une grid avec les informations complètes de tous les clients, au bas de cette grid j'ai deux texte boxes un pour le No de client et l'autre pour le nom, dès que je rentre dans l'un de ces texte boxes un début d'information automatiquement ma grid est rafraîchit par une requête qui pointe sur les éléments commençant par l'information que j'ai rentré. Un petit exemple, lorsque ma fenêtre apparaît en premier ma grid contient l'ensemble des clients, je rentre dans ma textboxe un début de nom "Pa" et ma grid se remplis de tout ce qui commence par pa, Paul, Paulissen, Paivard, Packard, etc si je continue et que complète par "pauli" la grid se rafraîchit et sort cette fois Paulic, Paulissen etc... c'est très rapide pour retrouver le nom que l'on cherche. Une fois le client choisit je transfert les infos sur ma première form et voilà. Je vais profiter de ce long week_end pour nettoyer le code et te l'envoyer.
En attendant Bon premier mai

signaler à un administrateur
Commentaire de LIBRE_MAX le 01/05/2008 16:37:53

Bonjour,
Il m' est arrivé d' utiliser ta technique PLUPLU, avec une variante cependant.
Je ne rafraichissais pas ma liste à chaque frappe mais je me contentais
de faire un appel à ma fonction RECHERCHER_PART selon que je suis sur la
zone code ou la zone nom.Sitôt l' occurence trouvée je plaçais ma ligne au top
de la liste.
Autre façon de faire aussi, c' est d' utiliser une ListBox, et selon que le focus est
sur la zone code ou la zone nom la remplir ou avec les Codes ou les Noms.
Et dans l' evenement Change des deux zones, utiliser l' Api SendMessage qui permettera
de trouver la première occurence.

On voit bien ici que les techniques sont multiples, et je crois que le but recherché par
Renfield est justement d' en faire la synthèse.

A+

@DRISSOU.
Pas la peine d' avoir recours à une procèdure pour avoir la feuille appelante,
il suffit de palcer son Nom dans le Tag de ta form2 au chargement de celle-ci.
Faire ensuite:
select case Me.Tag
    case "feuille1"
         form1.MiseAjour (NumClient)
    case else
end select


signaler à un administrateur
Commentaire de asimengo le 02/05/2008 02:12:16

Je prends le train en marche, j'ai dû copier/coller le code du premier commentaire de Renf pour essayer de comprendre la problématique.

Ci-dessous ma proposition pour cette problématique.

FORM1
-----

Option Explicit
Private WithEvents Frm As Form2
Private lID As Long

Private Sub CcTxtClient_Validate(Cancel As Boolean)
    lID = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set Frm = Nothing
End Sub

Private Sub Frm_Annuler()
    CcTxtClient = vbNullString
End Sub

Private Sub Frm_Valider(ByVal TbValeurs As Variant)
    lID = TbValeurs(0)
    CcTxtClient = lID & " - " & TbValeurs(1)
End Sub


Private Sub CcBtnClient_Click()
    Set Frm = New Form2
    With Frm
        .Init App.Path & "\Bd1.mdb", "SELECT * From `Clients` ORDER BY `Nom`", lID, CcTxtClient.Text
        .Show vbModal
    End With
End Sub

FORM2
-----

Option Explicit
Public Event Valider(ByVal TbValeurs As Variant)
Public Event Annuler()
Private m_ID As Long, m_CheminBD As String, m_CmdText As String

Public Function Init(ByVal sCheminBD As String, ByVal sCmdText As String, ByVal lID As Long, Optional sValeur As String) As Boolean
    m_ID = lID
    m_CheminBD = sCheminBD
    m_CmdText = sCmdText
End Function

Private Sub CcBtnOk_Click()
    CcLst_DblClick
End Sub

Private Sub CcLst_DblClick()
On Error GoTo Handler
Dim i As Long, sValeurs As String

    With CcLst
        sValeurs = Mid(.SelectedItem.Key, 2) & Chr(0) & .SelectedItem.Text
        For i = 2 To .ColumnHeaders.Count
            sValeurs = sValeurs & Chr(0) & .SelectedItem.ListSubItems(i - 1)
        Next i
    End With
    RaiseEvent Valider(Split(sValeurs, Chr(0)))
    Unload Me
    Exit Sub
    
Handler:
    MsgBox Err.Description
End Sub

Private Sub CcBtnCancel_Click()
    RaiseEvent Annuler
    Unload Me
End Sub

Private Sub Form_Load()
Dim oDb As Database
Dim oRs As Recordset
Dim lIndex As Long, lID As Long, i As Long

    Set oDb = OpenDatabase(m_CheminBD)
    Set oRs = oDb.OpenRecordset(m_CmdText)
    lIndex = 1
    Do Until oRs.EOF
        lID = oRs.Fields(0).Value
        With CcLst.ListItems.Add(Key:="#" & lID)
            .Text = oRs.Fields(1).Value
            For i = 3 To oRs.Fields.Count
                .SubItems(i - 2) = oRs.Fields(i - 1).Value
            Next i
        End With
        If lID <> m_ID Then
            lIndex = lIndex + 1
        Else
            CcLst.ListItems(lIndex).Selected = True
        End If
        oRs.MoveNext
    Loop
    oRs.Close
    oDb.Close
End Sub

Je préfère des objets independants avec propriétés et méthodes et évènements en laissant le soin à l'appelant de jouer avec les évènements.

A+

signaler à un administrateur
Commentaire de Renfield le 05/05/2008 10:41:11 administrateur CS

on touche un concept interressant, asimengo, des "objets indépendants"...

signaler à un administrateur
Commentaire de Renfield le 05/05/2008 13:14:19 administrateur CS

article publié ici:
http://blogs.codes-sources.com/renfield/archive/2008/05/05/vb6-bo-tes-de-dialogue-communication-inter-form.aspx

signaler à un administrateur
Commentaire de LIBRE_MAX le 05/05/2008 14:34:42

Salut,
Pas si indépendant que ça !
Corrigez-moi si j' ai mal compris mais Lauch ne me renvoie qu' une Boolean.
Ou est donc passer l' Id et surtout vers quelle control il va être dirrigé ?

If Launch Then
       '# Pour cette Form, on renvoie l'ID
       [...]
   End If

Tout la question est dans [...] !

A vouloir contourner le Select Case on retombe dans pire !

Toutefois, je suis d' accord sur le fait que seul l' iD compte.
C ' est après qu' on s'occupera du reste, lorsque mon control dédié
à le recevoir change.

txtId_Change ==> Rechercher le reste.



signaler à un administrateur
Commentaire de LIBRE_MAX le 05/05/2008 14:41:48

Pour le Change, je parlais de txtId (mon control masqué) et pas de CcTxtClient

signaler à un administrateur
Commentaire de Renfield le 05/05/2008 14:44:14 administrateur CS

voir la source, elle est commentée.

on renvoie un Boolean qui indique uniquement si la Form a été validée ou non (ou Annulée, quoi).
le parametre ClientID est passé par référence. on le modifie directement.

comme énoncé dans l'article on pourrait utiliser une propriété publique de la Form
genre:

Public property get ClientID As Long

signaler à un administrateur
Commentaire de LIBRE_MAX le 05/05/2008 14:56:42

beh je savais bien que j' ai loupé quelque chose :-)
Inconsciement peut être...du fait que je tenais beaucoup à ma méthode.
Maintenant que j' ai tout compris, ou presque, j' essayerais de mettre en application cette nouvelle approche..et voir.

A+

signaler à un administrateur
Commentaire de Renfield le 05/05/2008 15:03:26 administrateur CS

tout a fait, je ne fais qu'exposer, comme vous avez pu le faire, ma vision de la chose.

signaler à un administrateur
Commentaire de LIBRE_MAX le 05/05/2008 15:11:30

Merci en tout cas f' avoir pris la peine de le faire.
C' est vraiment enrichissant, et ça permet de rappeler rout à chacun qu' on peut toujours faire autrement et surtout mieux.
C' est d' ailleurs ma devise.

A+
Bonne continuation.

signaler à un administrateur
Commentaire de drissou le 07/05/2008 14:30:01

LIBRE_MAX:
Effectivement je ne pense pas assez à ce tag..

Je vais aller consulter l'article de Renfield..

signaler à un administrateur
Commentaire de asimengo le 07/05/2008 18:53:36

Je viens de voir ta maj renf, mais je prefere encore des objets plus independants, c'est effectivement pour mettre en evidence cet interaction que j'ai publié la source http://www.vbfrance.com/codes/CONTROLE-PERMETTANT-SELECTION-PARTIR-LISTE-PLUS-INTERESSANT-COMBOBOX_37540.aspx

Bien que j'ai pas fait de mise a jour en ligne, j'utilise en gros cet objet pour tous mes contrôles de liste et je prefere un datagrid rattache a un recordset local qu'un listview, je vais d'aileurs regarder à quoi ressemble le scgrid de PLUPLU

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Ticket a Gratter/Je sais... [ par eXoS1337 ] Bonjour, je sais que ce message a &#233;t&#233; poster plusieur fois, mais ce n'est pas exactement parei Besoin de suggestions de code [ par Renfield ] Bonjour tout le monde. Pas souvent de ce coté de la barrière, je requiert des suggestions de code, en vue d'illustrer un futur article. voilà le top inserer des variables dans une ligne de code (condition IF, rechercheV) [ par livinho38 ] bonjour, je cherche a remplir un tableau a partir d'un tableau croisé dynamique:voici mon code: Sub Macro12()'' remplissage tableau, ligne réalisé.n = jcherche le code pour la cmd modifier [ par lacrymosa123 ] bonjour je cherche le code pour la cmd modifier je travail av vb6 fichier merci d'avance Paramètres ADO [ par fabricioliking ] j'ai repris mon code mais j'ai toujours cette erreur ="Aucune valeur donnée pour un ou plusieurs des paramètres requis"Ma requête me semble pas fausse Requête SQL [ par fabricioliking ] J'ai avancé avec mes requêtes, mais cette fois-ci j'ai cette erreur " Aucune valeur donnée pour un ou pl mot de passe VBA Excel [ par vietzims ] Bonjour à tous. Je souhaiterais avoir le code permettant d'exiger un mot de passe à l'ouverture d'un formulaire (ou userform). J'aimerais également ob utilisation des paramètres avec l'objet Command [ par agbebe ] salut a tous!!voila j'ai écrit un programme en vb6 et la base est en mysql. tout marche bien sur le serveur mais sur le poste client j'ai un message d automatiser tableau [ par kameylia ] Bonjour, je ne connais pas grand chose en macro je fais donc appel a votre aide... en faite jai un tableau excel avec 4 colonnes: la premiere contient


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.