Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    170

    [VB6] Associazione ComboBox-database

    In un programma che sto facendo in Visual Basic 6 per il calcolo del codice fiscale ho una serie di textbox per l'inserimento da parte dell'utente di nome, cognome e data di nascita. Per quanto riguarda invece la città, vorrei che avvenga tramite un ComboBox, associato ad un database. Quindi l'utente non potrà sbagliare nell'inserimento della città, perchè il comboBox gliela suggerirà, man mano che l'utente scrive la città di nascita. Il perchè dell'utilizzo del ComboBox associato al database è associato al fatto che nel database ci sono i codici catastali (i famosi quattro caratteri che riguardano la città e occupano le cifre 12-13-14-15 del codice fiscale). Infatti, una volta che l'utente ha scelto la città vorrei che in una apposita textbox appaia appunto il codice catastale. Come posso associare il comboBox al database e successivamente estrapolare il codice catastale al combobox?
    PS Il database è scritto in Access 2000.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao rds89,
    ti ho predisposto un esempio, che dovrebbe rispondere alle tue esigenze.
    Per portare i codici dal ComboBox a due Txt ho utilizzato due matrici (anche se si può procedere in modo diverso):
    codice:
    Option Explicit
        Dim DataConnessione As String
        Dim intNRecord As Integer
    ' Dichiara due matrici:
        Dim Dep() As String
        Dim Reg() As String
    '--------------------------------------------------------------------------
    Private Sub Command1_Click()
        On Error GoTo ErrHandler
        
        Dim ConPr1 As New ADODB.Connection
        Dim RSTpr1 As New ADODB.Recordset
        Dim RSTprXC As New ADODB.Recordset
        Dim r As Integer
    
    ' Dimensiona due matrici:
        ReDim Dep(0 To intNRecord)
        ReDim Reg(0 To intNRecord)
    
        
    'Esegue la connessione con il DataBase:
        With ConPr1
            .ConnectionString = DataConnessione
            'tipo di cursore:
            .CursorLocation = adUseClient
            'nessuna limitazione:
            .Mode = adModeShareDenyNone
            .CommandTimeout = 15
            .Open
        End With
    
    ' Esegue il controllo sulla TblParti per verificare il numero di record presenti:
        RSTprXC.Source = "SELECT IDParti FROM TblParti;"
        RSTprXC.Open , ConPr1, adOpenStatic, adLockReadOnly
        RSTprXC.MoveLast
    ' Acquisisce il numero di records presenti nella Tabella:
        intNRecord = RSTprXC.RecordCount
    ' Chiude / cancella il recordSet:
        RSTprXC.Close
        Set RSTprXC = Nothing
    
    
    ' Porta i records nella ComboBox:
        RSTpr1.Source = "SELECT Deposito, RegLodi FROM TblParti;"
            RSTpr1.Open , ConPr1, adOpenDynamic, adLockOptimistic
    
            For r = 0 To (intNRecord - 1)
                Combo1.AddItem (RSTpr1("Deposito") & Space(3) & RSTpr1("RegLodi"))
                Dep(r) = RSTpr1("Deposito")
                Reg(r) = RSTpr1("RegLodi")
                RSTpr1.MoveNext
                ReDim Preserve Dep(intNRecord - 1)
                ReDim Preserve Reg(intNRecord - 1)
            Next r
    ' Visualizza la prima voce dell'elenco:
        Combo1.ListIndex = 0
        
    
    'Chiude e cancella il recordSet:
        RSTpr1.Close
        Set RSTpr1 = Nothing
    'Chiude e cancella la connessione:
        ConPr1.Close
        Set ConPr1 = Nothing
    
    ErrHandler:
        If Err.Number <> 0 Then
            MsgBox Err.Description & Chr(13) _
            & "Si è verificato un errore nella procedura." & Chr(13) _
            & "Controllare e ripetere l'operazione.", vbInformation, "....."
            Err.Clear
            'Chiude e cancella il recordSet:
                RSTpr1.Close
                Set RSTpr1 = Nothing
            'Chiude e cancella la connessione:
                ConPr1.Close
                Set ConPr1 = Nothing
            Exit Sub
        End If
    
    End Sub
    '--------------------------------------------------------------------------
    Private Sub Form_Load()
    
    ' Stringa di connessione Senza password:
        DataConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\TuoDB.mdb;Persist Security Info=False;"
    
    End Sub
    '--------------------------------------------------------------------------
    Private Sub Combo1_Click()
       
    ' Visualizza i dati nelle Txt - prelevandoli dalle matrici - al click sulla voce
    ' della ComboBox:
    
       Text1.Text = Dep(Combo1.ListIndex)
       Text2.Text = Reg(Combo1.ListIndex)
    
    End Sub
    Per il funzionamento, metti sulla Frm due Txt un ComboBox ed un CmdButton
    LM

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.