Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Funzione per casella a scendere

    Per cortesia un aiuto
    VBasic da inserire in Access

    L'idea è questa:
    Selezionando nella lista un determinato Paese mi venga compilato in automatico un campo Cap e Prov.

    Ho costruito un Array della lista in un Modulo richiamandolo all'apertura del Form e qui tutto bene
    Come codice inserito sul clic della Casella a scendere
    ho inserito un codice tipo:
    If me.Oggetto.ListIndex = 0 Then
    me.Cap = "25100"
    me .Prov = "Bs"
    End if

    Ciò non è molto pratico e mi piacerebbe creare una funzione apposita che mi faciliti il tutto.

    Grazie Giorgio
    Saluti a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    58
    Non ho ben capito cosa vorresti fare.
    Ge

  3. #3
    L'idea sarebbe costruire una funzione al posto dei soliti If per fare in modo che selezionando il paese facente parte della lista del combobox venga compilato in automatico pure i campi del Cap e della Provincia di sua spettanza
    L'elenco ne prevede un centinaio.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    58
    ti puoi creare un'array dove ogni elemento è costituito da Cap e Prov mettendoli nello stesso ordine di corrispondenza con la lista dei paesi.
    in questo modo puoi andare a visualizzare il cap e la provincia attraverso un'accesso diretto a questo array considerando il ListIndex selezionato nella combo. ad esempio:

    se nella lista ci sono
    Torino -->0
    Milano -->1
    Roma -->2

    nell'array avrai
    10100-to -->0
    ...-mi -->1
    ...-ro -->2

    se hai selezionato Roma il list index valrrà 2 e stamperai l'elemento del'array di indice 2.

    il tutto quindi lo puoi rinchiudere in questa funzione:

    Public Function (index as integer)

    txtCap=array(index).cap
    txtProv=array(index).prov

    end sub

    dove index sarà il listIndex dell'elemento selezionato nella combobox.
    non ricordo bene la sintassi degli array costutiti da più elementi cmq se non hai capito fammi sapere.
    Ciao! :tongue:
    Ge

  5. #5

    Casella a scendere

    Grazie gege,
    la metterò in atto poi ti farò sapere

    Buona serata
    Giorgio

  6. #6
    :master: Scusa ma dal momento che sei in Access non sarebbe più comodo fare un DataBase apposta? :master:
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  7. #7

    Funzione casella a scendere

    In base alle indicazioni di gege ho creato questi due Array che mi caricano i 2 LstCombo e fin qui tutto bene, però mi sono arenato nella seconda parte dove devo creare la funzione che assegna i rispettivi valori

    ---------------------------------------
    'Parte creata in un modulo sorgenti
    Public PaeseCitta As Variant
    Public Const NPaeseCitta = 4
    Public Const NCapProv = 4
    Public CapProv As Variant
    Public Sub InizializzaArray()

    PaeseCitta = Array("Pippo", _
    "Pluto", _
    "Caino", _
    "Abele")

    CapProv = Array("25075 - Bs", _
    "25100 - Bs", _
    "23498 - Na", _
    "10000 - Pa")

    End Sub

    Public Function CercaPaeseCitta(PaeseCittaCercata)
    Dim CercaPaCi As Integer
    CercaPaCi = -1
    For i = LBound(PaeseCitta) To UBound(PaeseCitta)
    If (PaeseCitta(i) = PaeseCittaCercata) Then
    CercaPaCi = i
    Exit For
    End If
    Next i
    CercaPaeseCitta = CercaPaCi
    End Function
    Public Function CercaCapProv(CapProvCercata)
    Dim CercaCP As Integer
    CercaCP = -1
    For i = LBound(CapProv) To UBound(CapProv)
    If (CapProv(i) = CapProvCercata) Then
    CercaCP = i
    Exit For
    End If
    Next i
    CercaCapProv = CercaCP
    End Function
    -----------------------------------------

    ' Parte inserita nel Form
    Option Compare Text
    -------------------------
    Sub CaricaPaeseCitta()
    Dim i
    Me.lstDest.Clear
    For i = 0 To NPaeseCitta - 1
    Me.lstDest.AddItem PaeseCitta(i) ' aggiunge gli elementi al list box
    Next i
    End Sub
    ------------------
    Private Sub Form_Load()
    Dim i
    Sorgenti.InizializzaArray
    CaricaPaeseCitta
    CaricaCapProv
    End Sub

    Sub CaricaCapProv()
    Dim i
    Me.lstCapProv.Clear
    For i = 0 To NCapProv - 1
    Me.lstCapProv.AddItem CapProv(i) ' aggiunge gli elementi al list box
    Next i
    End Sub
    -------------------
    Grazie e saluti
    Giorgio

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.