IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

ID automatique depuis database


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club Avatar de paradize99
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 60
    Points : 29
    Points
    29
    Par défaut ID automatique depuis database
    Bonjour,
    J'ai crée un form permettant à l'user de renseigner les infos d'une commande à partir d'une table access.
    J'aimerais qu'à chaque fois que le form s'ouvre un ID se crée automatiquement, il se composé de la date du jour et un nombre automatique
    Cependant je n'arrive pas à trouver comment faire pour qu'il lise la table et m'affiche le bon nombre

    Par exemple: la première commande d'aujourd'hui aura comme ID : 032219-001

    Voici le code que j'ai essayé mais rien ne s'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Dim REQID As String
            REQID = Format(Today, "MMddyy")
            cn.Open()
     
            Dim cmdID As New OleDbCommand("select RequisitionID as values from tblToolRequisition", cn)
            Dim dr As OleDbDataReader = cmdID.ExecuteReader
            While dr.Read()
                TextBox2.Text = REQID + Val(dr.Item("values").ToString) + 1
            End While
     
            cn.Close()
    Merci d'avance pour vos réponses

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je ne peux pas tester, ni répondre directement, mais je me permets deux conseils.

    Évite d'utiliser le + pour concaténer des chaînes. Préfère l'esperluette (&).

    Dans VBA. val() ne vaut pas un clou quand le séparateur décimal est la virgule. Et je suis à peu près certain que c'est pareil en VB.net

    Tu peux utiliser à la place les fonctions traditionnelles de VB comme CDbl, Csng etc,

    Parmi quelques options en .net, je préfère la méthode TryParse qui est implantée dans tous les types numériques. L'avantage de TryParse étant qu'il est possible de vérifier si la conversion est réussie, sans planter le programme, ou gérer un bloc Catch

    Un exemple ramassé en vitesse sur mon disque. Tu peux remplacer DateTime par Integer, Double etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     Private Sub TryParseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TryParseButton.Click
            If Not String.IsNullOrEmpty(DateTextBox.Text) Then
                Dim parsedValue As DateTime
                Dim tryResult As Boolean
     
                tryResult = DateTime.TryParse(DateTextBox.Text, parsedValue)
                If tryResult Then
                    'réussi
                    MessageBox.Show("The parsed date is " & parsedValue.ToString() & ".")
                Else
                    'Raté
                    MessageBox.Show("The parse failed.")
                End If
            Else
                MessageBox.Show("Textbox is empty.")
            End If
        End Sub
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Nouveau membre du Club Avatar de paradize99
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Merci clementmarcotte pour ta reponse et desole pour le delai

    J'ai finalement trouve comment faire, au cas ou ca interesse qq, voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            Dim REQID As String
            REQID = Format(Today, "MMddyy")
            cn.Open()
     
            Dim MyTable As New DataTable
            Dim cmdID As New OleDbDataAdapter("select * from tblToolRequisition", cn)
            cmdID.FillSchema(MyTable, SchemaType.Source)
            cmdID.Fill(MyTable)
     
            If MyTable.Rows.Count > 0 Then
                For Each R As DataRow In MyTable.Rows
                    If Not R.Item("RequistionNum") Is DBNull.Value Then
     
                        Dim COUNT As Integer = 1
                        If InStr(R.Item("RequistionNum"), REQID) > 0 Then
                            COUNT = COUNT + 1
                        End If
     
                        TextBox2.Text = REQID & Val(R.Item("RequistionNum").ToString) & "-" & Format(COUNT, "000")
     
                    End If
                Next
            End If
            cn.Close()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/06/2009, 11h36
  2. Importation automatique depuis csv
    Par Anium dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/06/2008, 09h36
  3. [SQL & excel]Importation automatique depuis excel
    Par balabonov dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/10/2006, 12h51
  4. Réponses: 5
    Dernier message: 24/01/2006, 01h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo