Datagridview richtig füllen und Textbox.text eingabe "hochzählen"

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Julia89.

    Datagridview richtig füllen und Textbox.text eingabe "hochzählen"

    Guten Tag zusammen, ich stehe vor einem Problem das ich als vb newbe nicht ohne weiteres lösen kann.

    Ich habe eine form mit 2 textboxen und einem Datagridview. In textbox1 soll vom benutzer ein String eingetragen werden der immer mit 3 Zahlen endet z.b. XX100YY001 oder aber auch XX999YY199
    In Textbox2 kommt dann eine Zahl zb. 5
    Nun soll das Datagridview gefüllt werden. Das soll anhand der Beispiele so aussehen:


    XX100YY001
    XX100YY002
    XX100YY003
    XX100YY004
    XX100YY005

    bzw:
    XX999YY199
    XX999YY200
    XX999YY201
    XX999YY202
    XX999YY203



    VB.NET-Quellcode

    1. Dim AnzahlBM As Integer = 0
    2. For AnzahlBM = 1 To Anzahltxtbox.Text
    3. DataGridView1.Rows.Add()
    4. If DataGridView1.Rows(0).Cells(0).Value = "" Then
    5. DataGridView1.Rows(0).Cells(0).Value = BMtxtbox.Text


    Die Anzahls der Rows festzulegen stellt kein problem dar, nur stehe ich absolut auf dem schlauch wie ich zum einen die Nummer "hochzählen" lassen kann und diese dann der Reihe nach in das DGV bekomme.

    Ich freue mich über jede Hilfe.

    Danke schon mal.

    Verschoben. ~Trade

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Julia89 schrieb:

    For AnzahlBM = 1 To Anzahltxtbox.Text
    Option Strict On einstellen...

    Du kannst z.B. mit der Methode String.Concat Stringteile zusammensetzen...

    VB.NET-Quellcode

    1. Dim myValue = String.Concat(Textbox1.Text, AnzahlBM.ToString)

    Was geschieht anschließend mit den Daten im DGV?
    Option Strict On ist jetzt an. Danke.

    Ich möchte die strings ja nicht einfach zusammenführen. sondern eben wie in dem beispiel oben anpassen.
    wenn in der textbox2 als beispiel der wert 5 steht sollen im DGV 5 rows mit den angepassten(hochgezählten) zahlen erscheinen.
    Hi, ich habe mich jetzt ein wenig weiter gekämpft, es funktioniert jetzt fast so wie ich es gern hätte.
    das ist ein auszug aus meinem code.

    VB.NET-Quellcode

    1. Dim i As Integer = CInt(Anzahlcombobox.Text)
    2. Dim Reihe = DataGridView1.NewRowIndex.ToString
    3. Dim BMcut01 As String = BMtxtbox.Text.Remove(10, 3)
    4. Dim Bmletzte As String = BMcut01.Remove(0, 7)
    5. Dim BMcutVB As String = BMcut01.Remove(7, 3)
    6. Dim x As Integer = 0
    7. Dim y As Integer = CInt((CDbl(Bmletzte) - 1))
    8. Do While (x < i)
    9. x = x + 1
    10. y = y + 1
    11. Dim BmFertig = (BMcutVB & y)
    12. DataGridView1.Rows(x - 1).Cells(0).Value = (BmFertig)
    13. Loop


    Die Nummern werden wie gewünscht hochgezählt.
    Allerdings gibt es ein Problem, sobald der String z.b. XX001XX001 ist wird mir im DGV nur noch XX001XX1 angezeigt und damit hochgezählt.
    bei einem String wie XX001XX101 funktioniert es ohne Probleme.
    Unterm Strich werden mir also die 2 Nullen verschluckt. Wie kann ich dem entgegenwirken?

    Ich würde mich freuen wenn du mir nochmal unter die arme greifen könntest.

    Julia89 schrieb:

    Option Strict On ist jetzt an.
    Das glaube ich dir nicht --> (schaue Zeile #13)
    Edit:

    Auszug aus MSDN schrieb:

    Wenn der expression1-Datentyp oder der expression2-Datentyp nicht String ist, jedoch zu String erweitert werden kann, wird er in String konvertiert.
    Falls einer der Datentypen nicht zu String erweitert werden kann, generiert der Compiler einen Fehler.

    Der result-Datentyp ist String. Wenn einer der beiden Ausdrücke oder beide Nothing oder den Wert DBNull.Value ergeben,
    werden sie als Zeichenfolge mit dem Wert "" behandelt.

    VB.NET-Quellcode

    1. Dim y As Integer = CInt((CDbl(Bmletzte) - 1))
    ??? genügt dir da nicht ein Cint(Bmletzte)...



    Schaue dir einmal benutzerdefinierte Zahlenformatzeichenfolgen an.
    Da wird dir die Rubrik Der benutzerdefinierte Bezeichner "0" interessieren. Dim BmFertig = BMcutVB & y.ToString("000")

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    Hi, nochmal danke für deine Hilfe.
    Ich möchte die DGV einträge nun weiter verarbeiten und damit 2 excelvorlagen füllen.
    Bei einer der beiden funktioniert es nur mit option strict off, weil ich ansonsten diesen fehler bekomme:Option strict on lässt späteres binden nicht zu und ich nicht verstehe was das bedeuten soll. die andere ist leider etwas komplizierter.

    VB.NET-Quellcode

    1. Do While (x < i)
    2. Dim xlapp As New Excel.Application
    3. xlapp.Visible = True
    4. Dim xAufbauVTGBili = xlapp.Workbooks.Open("excel")
    5. x = x + 1
    6. y = y + 1
    7. Dim BMexcel As String = CStr(DataGridView1.Rows(y - 1).Cells(0).Value)
    8. xAufbauVTGBili.Worksheets("Tabelle1).range("Text Box 10").value = BMexcel
    9. xAufbauVTGBili.Close(SaveChanges:=True)


    Wenn ich mit Option strict off kompiliere bekomme ich fehlermeldungen.(Zusätzliche Informationen: Ausnahme von HRESULT: 0x800A03EC)
    ich habe ein problem mit meinen "range" angaben.
    Ich verstehe nicht wie ich auf die "steuerelemente" oder wie auch immer man das nennen soll zugreifen kann bzw wie ich herausfinde wie diese denn überhaupt heißen.
    Ich hänge die Datei mal mit an.
    Wäre schön wenn mal jemand darüber schaut.
    Dateien
    • Excel1.xls

      (110,59 kB, 104 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Julia89“ ()

    Ja wie gesagt bei der einen Excel funktioniert es ja mit der Zelle. dort schreibe ich auch direkt in eine Zelle. In der angehängten excel liegen auf der zelle a1 steuerelemente oder textboxen (so heißen sie zumindest) und in genau so eine will ich schreiben. Wenn ich in a1 schreiben würde wäre der zellinhalt irgendwo hinter diesen boxen.vllt einfach mal die Excel anschauen.
    Ich kann mir deinen Anhang leider momentan nicht anschauen (bin unterwegs)...
    So wie ich das jetzt verstehe - willst du einen Wert in ein eingebettetes Steuerelement im Excelsheet übertragen...

    Da habe ich etwas im Netz dazu gefunden (Shapes):
    vbforums.com/showthread.php?63…t-value-to-Excel-Text-Box
    ...ich hab mit so etwas noch nichts zu tun gehabt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()