Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3174 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Acess] remplir un Feild Name

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Acess] remplir un Feild Name

n°1450706
Zorh
Opteron Power !
Posté le 02-10-2006 à 11:50:18  profilanswer
 

Bonjour à tous,
 
Je souhaite créée une table comme suit:
 
    A | B | C | D ...
    w   x    y   z
 
Sa j'y arrive :D
 
j'aimerai pouvoir crée la table vierge et avec un Formulaire lui demander de saisir une valeur début et fin
Toutes les valeurs comprise entre seront "injecter" dans A.
 
exemple valeur Saisie   5 (puis) 9
 
résultat dans la table:
 
    A | B | C | D ...
    5   x    y   z
    6
    7
    8
    9
 
jusqu'là je pense que sa doit être possible.
 
maintenant j'aimerai que "l'incrémenation" de face en BASE 7
 
cad -> ( révision math ) 0, 1, 2, 3, 4, 5, 6, 10, 11, ...
 
j'espère que vous m'avais suivie.
j'utilise acess que peu souvant et je ne serait pas faire cela si quelqu'un pourrai m'aider ?
 
je lui en remerci !
 
Cordialement,
Zorh.

mood
Publicité
Posté le 02-10-2006 à 11:50:18  profilanswer
 

n°1450753
Zorh
Opteron Power !
Posté le 02-10-2006 à 13:42:00  profilanswer
 

et ben ... je vous est posé une colle ? :D

n°1450844
Zorh
Opteron Power !
Posté le 02-10-2006 à 15:32:45  profilanswer
 

toujour pas d'idée ? :)

n°1450922
Zorh
Opteron Power !
Posté le 02-10-2006 à 17:08:03  profilanswer
 

en faite, je viens de m'aperçevoir d'une chose.
 
La suite que je veux n'est en faite pas de la Base 7 !!  
 
Voici la suite:
 
01
12
23
34
45
56
60
71
82
93
...
 
Base 17 ?   :??:  
 
quelqu'un peu m'aider ?
 
merci grandement !
Zorh.


Message édité par Zorh le 02-10-2006 à 17:08:17
n°1450942
seniorpapo​u
Posté le 02-10-2006 à 17:27:17  profilanswer
 

Bonsoir,
j'ai trouvé cela pour toi :
 
Private Function Inverser(ByVal strChaine As System.String)  
        Dim intI As System.Int32  
        Dim strS As System.String  
        For intI = strChaine.Length - 1 To 0 Step -1  
            strS &= strChaine.Substring(intI, 1)  
        Next  
        lblResult.Text = strS  
    End Function  
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
        Dim intNombre, intBase, intReste, intQuotient As System.Int32  
        intNombre = CInt(txtNombre.Text)  
        intBase = CInt(txtBase.Text)  
        intQuotient = 1  
        lblResult.Text = ""  
        ' Tant que le quotient est différent de 0, le reste est affecté à chaque position du nombre converti  
        Do While intQuotient <> 0  
            intQuotient = intNombre \ intBase  
            intReste = intNombre Mod intBase  
            intNombre = intQuotient  
            ' Si le reste > 9 ( code hexadécimal et plus ), une lettre est affecté au chiffre  
            If intReste > 9 Then  
                lblResult.Text &= Chr(intReste + 55)  
            Else  
                lblResult.Text &= intReste  
            End If  
        Loop  
        ' On inverse la chaine puisque l'algorithme donne le nombre converti à l'envers  
        Inverser(lblResult.Text)  
    End Sub  
   
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
        Dim intNombre1, intBase1, intResult, intJ As System.Int32  
        intBase1 = CInt(txtBase1.Text)  
        ' Convertit le nombre en base X en un nombre décimal  
        For intJ = 0 To txtNombre1.Text.Length - 1 Step 1  
            If Char.IsLetter(txtNombre1.Text.Substring((txtNombre1.Text.Length - 1 - intJ), 1)) Then  
                'Si il y a une lettre, on convertit en son chiffre décimal  
                'On prend la chaîne à l'envers puisque l'ordre des puissances est inversée  
                'par rapport à la chaîne de caractères  
                intResult += (Asc(txtNombre1.Text.Substring((txtNombre1.Text.Length - 1 - intJ), 1)) - 55) * intBase1 ^ intJ  
            Else  
                intResult += txtNombre1.Text.Substring((txtNombre1.Text.Length - 1 - intJ), 1) * intBase1 ^ intJ  
            End If  
        Next  
        lblResult1.Text = intResult  
    End Sub  
 
 
sur copernic agent en demandant : "base 7" vba

n°1451081
Zorh
Opteron Power !
Posté le 02-10-2006 à 21:21:37  profilanswer
 

Yahou !!!
 
bon je v me pendre et je regarderai sa demain quand je serais frais.
 
merci bcp !
 
Zorh.

n°1451086
seniorpapo​u
Posté le 02-10-2006 à 21:45:28  profilanswer
 

Bonne nuit,
je n'ai pas testé, mais c'est censé dans la séquence bouton1 clic transformer un nombre dans la base indiquée et le bouton2 clic faire la transformation inverse.
pour créer le record je suppose que tu sais faire.
Cordialement

n°1451447
Zorh
Opteron Power !
Posté le 03-10-2006 à 14:18:21  profilanswer
 

le revient sur mon sujet,
j'ai effectivement maintenant la possibilité de compter en base 7.
 
ma suite est en faite pas pareil ...
 
123456
 
6 se compte en base 7 cad de 0 à 6  
mais le reste des chiffres se compte normallement ....
 
exemple:
1001
1012
1023
1034
1045
......
 
comment faire ?
 
Merci !
Zorh.

n°1451647
seniorpapo​u
Posté le 03-10-2006 à 17:22:36  profilanswer
 

Bonsoir,
Je n'ai pas bien compris, 1001 donne 1001? etc??? je vais regarder ce soir comment fonctionne le module
Cordialement

n°1451771
seniorpapo​u
Posté le 03-10-2006 à 21:22:09  profilanswer
 

Bonsoir,
J'ai adapté la première partie à VBA:
Texte0 contient la valeur à convertir
Texte2 le résultat
Texte6 la base
Commande4 le bouton de commande
cela semble fonctionner
 
 
 
Private Function Inverser(ByVal strChaine As String)
        Dim intI As Long
        Dim strS As String
        montout = strChaine
        compteur = Len(strChaine)
'montout = Selection.Text
monresultat = ""
For c = 1 To compteur
moncar = Mid(montout, c, 1)
monresultat = moncar + monresultat
 
   
  Next c
Texte2 = monresultat
         
    End Function
   Private Sub Commande4_Click()
        Dim intNombre, intBase, intReste, intQuotient As Long
        intNombre = CInt(Texte0)
        intBase = CInt(Texte6)
        intQuotient = 1
        Texte2 = ""
        ' Tant que le quotient est différent de 0, le reste est affecté à chaque position du nombre converti
        Do While intQuotient <> 0
            intQuotient = intNombre \ intBase
            intReste = intNombre Mod intBase
            intNombre = intQuotient
            ' Si le reste > 9 ( code hexadécimal et plus ), une lettre est affecté au chiffre
            If intReste > 9 Then
                Texte2 = Texte2 + Chr(intReste + 55)
            Else
                Texte2 = Texte2 + Str(intReste)
            End If
        Loop
        ' On inverse la chaine puisque l'algorithme donne le nombre converti à l'envers
        Inverser (Texte2)
    End Sub
 
Cordialement

mood
Publicité
Posté le 03-10-2006 à 21:22:09  profilanswer
 

n°1451787
seniorpapo​u
Posté le 03-10-2006 à 21:46:13  profilanswer
 

Re,
tu veux:
01
12
....
93
104
115
126
130
141
152
...??
 
1002
1013
...????
 

n°1451807
seniorpapo​u
Posté le 03-10-2006 à 22:00:54  profilanswer
 

Re re re
ne serait-ce pas cela que tu veux?
 
110 étant en exemple:
 
 
For i = 0 To 110
        nbvoulu = 10 * i + ((i + 1) Mod 7)
         
        MsgBox nbvoulu
        Next i
 
Cordialement

n°1451982
Zorh
Opteron Power !
Posté le 04-10-2006 à 11:12:17  profilanswer
 

seniorpapou Merci !
 
voici se que j'ai réussi à faire.
 
Function suivant(nb As Long) As Long
    Dim tempo As Long
    tempo = nb + 11
        If Right(tempo, 1) = "7" Then tempo = tempo - 7
    suivant = tempo
End Function
 
Sub calcul_LTA()
Dim mabase As DAO.Database
Dim matable As DAO.Recordset
Dim debut As Long
Dim nb_suite As Long
Dim boucle As Long
Set mabase = CurrentDb()
Set matable = mabase.OpenRecordset("Table1" )
debut = CLng(InputBox("début de la suite ??" ))
nb_suite = CLng(InputBox("Nombre de donné dans la suite ??" ))
For boucle = 1 To nb_suite
debut = suivant(debut)
matable.AddNew
matable("LTA" ) = debut
matable.Update
Next boucle
Set mabase = Nothing
End Sub
 
Cordialement,


Message édité par Zorh le 04-10-2006 à 11:12:54
n°1452095
seniorpapo​u
Posté le 04-10-2006 à 14:05:06  profilanswer
 

Bonjour,
j'ai testé ta séquence, elle est presqu'au point. Si je peux me permettre une suggestion pour l'améliorer:  
1) tester la validité de "debut" à la saisie
j'ai saisi 9 et c'est très bien passé, hors, il n'est pas dans la série.
 
2) la valeur saisie dans début n'est pas prise dans le fichier parce que "suivant" fait +11 tout de suite. Donc, si j'introduis 10 la première valeur est 21, si j'introduis 16 la première valeur est 20, si j'introduis 0 la première valeur est 11 . j'avais lu dans tes posts que ta première valeur était 1  (01).
 tiens nous au courant.
Cordialement
 
 
 
 

n°1452110
Zorh
Opteron Power !
Posté le 04-10-2006 à 14:24:35  profilanswer
 

bonjour seniorpapou,
 
effectivement j'ai eu une série pour faire mon projet et je n'est rien de plus.
 
série:
1001
1012
1023
1034
1045
1056
1060
1071
1082
1093
1104
1115
....
 
ta suggestion concernant le test de validité sur la saisie "debut" est très bonne !
 
malheureusement je vois pas comme je peus faire sa si tu as une idée ^^
 
je suis un piètre programmeur !
 
merci pour tout !
 
Zorh.

n°1452127
Zorh
Opteron Power !
Posté le 04-10-2006 à 14:42:04  profilanswer
 

c bon j'ai trouvé
 
SAISIE:
debut = CLng(InputBox("début de la suite ??" ))
If Right(debut, 1) > 6 Then
MsgBox ("N° érroné !" )
GoTo SAISIE:
end if

n°1452142
Zorh
Opteron Power !
Posté le 04-10-2006 à 14:55:01  profilanswer
 

Bon au final :
 
 
Function suivant(nb As Long) As Long
    Dim tempo As Long
    tempo = nb + 11
        If Right(tempo, 1) = "7" Then tempo = tempo - 7
    suivant = tempo
End Function
 
Sub calcul_LTA()
Dim mabase As DAO.Database
Dim matable As DAO.Recordset
Dim debut As Long
Dim nb_suite As Long
Dim boucle As Long
Set mabase = CurrentDb()
Set matable = mabase.OpenRecordset("Table1" )
SAISIE:
debut = CLng(InputBox("début de la suite ??" ))
If Right(debut, 1) > 6 Then
MsgBox ("N° LTA érroné !" )
GoTo SAISIE:
End If
debut = debut - 11
nb_suite = CLng(InputBox("Nombre de LTA disponible ??" ))
For boucle = 1 To nb_suite
debut = suivant(debut)
matable.AddNew
matable("LTA" ) = debut
matable.Update
Next boucle
Set mabase = Nothing
End Sub
 
tu aurai quelque chose à dire sur ça ?
merci de ton point de vue seniorpapou.
Zorh.

n°1452212
seniorpapo​u
Posté le 04-10-2006 à 15:32:41  profilanswer
 

Bonjour,
En première lecture cela semble bon.
Je contrôlerai tout à l'heure
Cordialement

n°1452233
seniorpapo​u
Posté le 04-10-2006 à 15:47:59  profilanswer
 

re,re
comme je vois que tu es en ligne:
si je mets 10, j'ai 10,21 etc...
si je mets 11, j'ai 11,22,etc ...est-ce cela que tu veux?  

n°1452269
Zorh
Opteron Power !
Posté le 04-10-2006 à 16:23:03  profilanswer
 

bien vu :/
 
tu as une suggestion de code pour sa ? je commence a être à sec et j'ai pas une grande connaissance en vba.
 
Merci.

n°1452288
Zorh
Opteron Power !
Posté le 04-10-2006 à 16:42:21  profilanswer
 

quoique non c bon ^^
 
je te remercie pour tout !
 
byebye

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Acess] remplir un Feild Name

 

Sujets relatifs
remplir formulaire grâce à une base de donnéeName dans VB.net
Récupérer le Full Name d'un utilisateur réseau en VBA [Résolu][javascript] remplir un champ automatiquement
[Résolu] Récupérer nom COMPLET (Display name) de l'utilisateur actif[C#.NET] Remplir un DataGrid a partir d'un répertoire, help please !
[C#.NET] Remplir une listview de fichiers d'un repertoire[C# .net] Reporting Services + variables à remplir
exporter une table sous acess en .csv via vb6Remplir un fichier avec du texte
Plus de sujets relatifs à : [Acess] remplir un Feild Name


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)