Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871

    [VB] compilare automaticamente una textbox

    Ciao a tutti, mi sto avvicinando a VB e provengo da VBA, ed ho un problemino che in Access riuscivo a risolvere ma in VB non riesco a risolvere.
    Io utilizzo la piattaforma Visual Basic 2010.

    In pratica avrei bisogno di compilare automaticamente una textbox di una form, a seconda del valore che seleziono da una Combobox.

    I dati li prendo da una tabella (TABELLA1) con 2 campi: ID, NOME.

    In pratica ho bisogno che se dalla "combobox1" seleziono un ID, automaticamente la mia "textbox1" venga compilata con il NOME associato a quell'ID.

    Come posso fare in Visual Basic?

    Grazie a tutti per l'aiuto.
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

  2. #2
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Ciao, io sto cercando di fare la stessa cosa, però i dati li prendo da un file XML.
    Tieni presente che non sono molto esperto...sono riuscito a farlo in due modi, vedi tu se ti possono "ispirare" a qualcosa di utile:
    File XML di esempio:
    codice:
    <table>
      <codice>
         <ID>1</ID>
         <descrizione>aaaa</descrizione>
      </codice>
      <codice>
         <ID>2</ID>
         <descrizione>bbbb</descrizione>
      </codice>
      <codice>
         <ID>3</ID>
         <descrizione>cccc</descrizione>
      </codice>
    </table>
    Metodo 1, carico contemporaneamente la combobox con gli ID e l' arraylist con la descrizione, gli Item hanno lo stesso indice quindi 0=0 1=1 ecc., però se si vuole mettere in ordine alfabetico gli ID della combobox non funziona...:
    codice:
      Dim descrizione As New ArrayList
        Private Sub Form3_Load() Handles MyBase.Load
            Dim xmlfile As New Xml.XmlDocument
            xmlfile.Load(My.Computer.FileSystem.SpecialDirectories.Desktop & "/file.xml")
            Dim nodo As Xml.XmlNode = xmlfile.SelectSingleNode("/table")
            For a = 0 To nodo.ChildNodes.Count - 1 Step 1
                ComboBox1.Items.Add(nodo.ChildNodes(a).ChildNodes(0).InnerText)
                descrizione.Add(nodo.ChildNodes(a).ChildNodes(1).InnerText)
            Next
        End Sub
    
        Private Sub ComboBox1_SelectedIndexChanged() Handles ComboBox1.SelectedIndexChanged
          TextBox1.Text = descrizione.Item(ComboBox1.SelectedIndex).ToString
        End Sub
    Metodo 2, popolo la combobox con gli ID, quando seleziono un ID ciclo il file xml fino a trovare l' ID corrispondente, prendo il valore del nodo descrizione e lo metto nella textbox:
    codice:
     Dim xmlfile As New Xml.XmlDocument
     Dim nodo As Xml.XmlNode
        Private Sub Form4_Load() Handles MyBase.Load
            xmlfile.Load(My.Computer.FileSystem.SpecialDirectories.Desktop & "/file.xml")
            nodo = xmlfile.SelectSingleNode("/table")
            For a = 0 To nodo.ChildNodes.Count - 1 Step 1
                ComboBox1.Items.Add(nodo.ChildNodes(a).ChildNodes(0).InnerText)
            Next
        End Sub
    
        Private Sub ComboBox1_SelectedIndexChanged() Handles ComboBox1.SelectedIndexChanged
            Dim ID As String = ComboBox1.SelectedItem.ToString
            For a = 0 To nodo.ChildNodes.Count - 1 Step 1
                If ID = nodo.ChildNodes(a).ChildNodes(0).InnerText Then
                    TextBox1.Text = nodo.ChildNodes(a).ChildNodes(1).InnerText
                    Exit For
                End If
            Next
        End Sub

  3. #3
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    Scusate, mi si è impallato il browser e mi ha postato 3 volte lo stesso post...

  4. #4
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    post cancellato...

  5. #5
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    Io questa cosa non riesco ad utilizzarla in quanto i miei dati li prendo da una tabella Access (Tabella1)

    In Access facevo così: prima popolavo la mia combobox1 con tutti gli ID mediante una semplice query di selezione sulla tabella, poi sull'evento Update della combobox1 (ogni volta che selezionavo un valore in elenco) eseguivo questa function che mi compilava la mia text1 con il nome associato all'ID scelto:

    codice:
    Option Compare Database
    Option Explicit
    
    Dim ws As Workspace
    Dim db As Database
    Dim qd As QueryDef
    Dim rs As Recordset
    Dim strSQL As String
    
    
    Public Function compila_form()
    Dim frm As Form
    Set frm = Forms("Form1").Form
    
    Set ws = DBEngine.Workspaces(0)
    Set db = CurrentDb
    
    strSQL = "SELECT * FROM Tabella1 WHERE ID like '" & Forms!FOrm1!Combobox1 & "'"
    
    Set rs = db.OpenRecordset(strSQL)
    
    If rs.EOF Then
    GoTo errLogon
    End If
    Forms("Form1")!Text1 = rs!NOME
    
    
    rs.Close
    db.Close
    Exit Function
    
    errLogon:
    MsgBox "ATTENZIONE, record non trovato", 0, "ERROR"
    
    rs.Close
    db.Close
    End Function
    In pratica mi creavo un recordset sulla tabella in base alla selezione fatta nella Combobox1 della Form1, e poi in base all'ID selezionato estraevo il relativo NOME e lo inserivo nella Text1.

    Così mi funziona perfettamente in VBA, ma non trovo la sintassi corretta per eseguirlo in VB.NET...
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

  6. #6
    Utente di HTML.it L'avatar di Bugu
    Registrato dal
    Nov 2007
    Messaggi
    871
    E' una cosa così complessa da fare?
    Linux User
    ---------
    Solo due cose sono infinite: l'universo e la stupidità umana, e non sono tanto sicuro della prima.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.