Laatste vier cijfers

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hallo Allemaal
is het in vb2008 mogelijk om de laatste vier cijfers van een text in een textbox te zetten.
ik heb een artikelcode Bv. K06-1010 in een database staan de bijbehorende foto = 1010
De laatste vier cijfers zijn altijd het fotonummer.
Deze moet ik nu appart invoeren.
is het mogelijk om deze laatste vier cijfers in een textbox tekrijgen??
 
Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim MijnString As String = "K06-1010"
        Dim Aantal As Byte = 4

        Dim FotoNummer As Short = CInt(MijnString.Substring(MijnString.Length - Aantal, Aantal))
    End Sub
 
Bedankt Pizara voor de reactie

Ik begrijp wel ongeveer de code maar niet hoe ik hem in mijn programma moet verwerken.

In de DataGridView worden de artikel nummers ingegeven inde colom Artikelnummer.
en het fotonummer uit de artikeldataSet in een textbox, FotonummerTextbox.
dus als ik inde dataGritView het artikel ingeef moet in de FotonummerTextbox de laatste 4cijfers verschijnen behorende bij het artikel.

Sorry mischien ben ik niet dudelijk genoeg geweest.
hopelijk kan je mij verder helpen.
 
Code:
    Dim Aantal As Byte = 4

    Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged

        If sender.CurrentCell IsNot Nothing Then
            TextBox1.Text = sender.CurrentCell.Value.Substring(sender.CurrentCell.Value.Length - Aantal, Aantal)
        End If

    End Sub
 
Hi Pizara

Bedankt deze code doet het.
maar als ik de volgende cell invul krijg ik deze fout melding

Het openbare lid Length voor type Decimal is niet gevonden.
 
Beste helpers.
De code van Pizara werkt goed maar ik kom niet uit het laatste probleem.
met de fout melding (Het openbare lid Length voor type Decimal is niet gevonden. ) deze komt als ik de volgende cell invul.
dus eerst artikelnummer dan inkoopaantal en inkoopprijs

Code:
 Dim Aantal As Byte = 4

    Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged

        If sender.CurrentCell IsNot Nothing Then
            TextBox1.Text = sender.CurrentCell.Value.Substring(sender.CurrentCell.Value.Length - Aantal, Aantal)
        End If

    End Sub
Alvast bedankt
 
zit gewoon wat fout in jouw code,
als ik een datagridview op een form zet, de code erin zet en 1 kolom handmatig invoeg doet ie t prima.

lijkt er meer op dat je een datacolum met het type decimaal (inkoopprijs??? €0,00) verwacht in je cell en de code daar de laatste 4 cijfers probeert op te vragen om naar je textbox te zetten. En dat gaat mis.

Als dat het geval is zal je waarschijnlijk je Private Sub DataGridView1_CellValueChanged moeten kijken of de currentcell wel in de juiste colum zit.
Iets van 'If DataGridView1.SelectedColumns' ofzo.
 
Ok Pizara bedankt ik ga hier mee verder mijn code ziet er zo uit

Code:
  Private Sub ArtikelenDataGridView_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ArtikelenDataGridView.CellValueChanged

        If sender.CurrentCell IsNot Nothing Then
            FotocodeTextBox.Text = sender.CurrentCell.Value.Substring(sender.CurrentCell.Value.Length - Aantal, Aantal)
        End If

    End Sub
ik ga dit is in een anderproef database uit zoeken.
hopelijk kom ik dan verder
 
Waarschijnlijk laat je in je datagridview meerdere kolommen zien. Kolom 1 voldoet misschien aan je code, echter kolom 2 misschien niet. Jouw code werkt op alle cellen, je kunt natuurlijk opvragen tot welke kolom 'currentcell' behoort.

Iets van:
DatagridView.CurrentCell.ColumnIndex

Controleer dan vervolgens:
Code:
        If sender.CurrentCell IsNot Nothing AndAlso sender.CurrentCell.ColumnIndex = X Then
            FotocodeTextBox.Text = sender.CurrentCell.Value.Substring(sender.CurrentCell.Value.Length - Aantal, Aantal)
        End If

X = de kolom waarbij de de code toegepast kan worden.
 
Beste Pizara en Jabber

Heel hartelijk bedankt voor de hulp met de onderstaande.
Code werkt zo als ik hoopte.
Hoewel ik niet precies begrijp waarom Colomnindex op 0 moest staan gezien het artikelnummer Colomn 3 is.
maar het probleem is opgelost nog maals heel hartelijk dank voor de hulp
Code:
 Private Sub ArtikelenDataGridView_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ArtikelenDataGridView.CellValueChanged
        Dim Aantal As Byte = 4
        If sender.CurrentCell IsNot Nothing AndAlso sender.CurrentCell.ColumnIndex = 0 Then
            FotonummerTextBox.Text = sender.CurrentCell.Value.Substring(sender.CurrentCell.Value.Length - Aantal, Aantal)

        End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan