Tasella di testo = rispettivo record

di Anonimizzato9927 il
7 risposte
Ciao a tutti,
problemino:
Ho una maschera in cui vi è una casella di testo (inizialmente vuota). Con un pulsante la riempio con un determinato valore numerico da 1 a 30.
Poi ho una tabella con 30 records, con due campi: in uno numerico ho messo i valori (uguali da 1 a 30) e nell' altro campo ho messo un path per la rispettiva immagine.
Nella maschera ho il collegamento all' immagine ma non riesco proprio a farmi aprire l'immagine del record corrispondente al numero che ho nella casella di testo (mi parte sempre dal 1°record).
Chi mi dà una "cucchiaiata"..... (non in fronte, è?)..... per far si che mi faccia vedere l' immagine coretta?

7 Risposte

  • Per gestire una cosa del genere ti serve un codice VBA, ma abbiamo bisogno di una descrizione più dettagliata:
    - nome maschera
    - nomi tabelle
    - nomi controlli
    - dove sta la casella combinata

    Per far partire l'apertura di un path scritto in un campo di tipo Testo si usa l'istruzione FollowHyperlink...ma occorre inquadrarla correttamente...
  • Filippo70 ha scritto:


    Ciao a tutti,
    problemino:
    Ho una maschera in cui vi è una casella di testo (inizialmente vuota). Con un pulsante la riempio con un determinato valore numerico da 1 a 30.
    Poi ho una tabella con 30 records, con due campi: in uno numerico ho messo i valori (uguali da 1 a 30) e nell' altro campo ho messo un path per la rispettiva immagine.
    Nella maschera ho il collegamento all' immagine ma non riesco proprio a farmi aprire l'immagine del record corrispondente al numero che ho nella casella di testo (mi parte sempre dal 1°record).
    Chi mi dà una "cucchiaiata"..... (non in fronte, è?)..... per far si che mi faccia vedere l' immagine coretta?
    Prima di tutto, per la selezione, usa una CasellaCombinata associata alla Tabella con 2 Colonne, se non vuoi vedere il PATH rendi la 2° colonna a larghezza=0, che mostra l'indice numerico... e ti consente di scegliere.

    Quindi definiamo
    1 ComboBox con OrigineRiga basata sulla Tabella chiamato [NomeCombo]
    SELECT ID, PATH FROM NomeTabella ORDER BY ID
    La combo avrà 2 Colonne, con colonna associata la 1°(che ha indice=n-1)
    Larghezza colonne=2cm;0cm
    Aggiungi un controllo Immagine chiamato [NomeControlloImmagine]
    Su evento DOPOAGGIORNAMENTO della CasellaCombinata(ComboBox) devi scrivere 1 riga...
    
    Private Sub NomeCombo_AfterUpdate()
       If FileExist(Me.NomeCombo.Column(1)) Then Me.NomeControlloImmagine.Picture=Me.NomeCombo.Column(1)
    End Sub
    
    ' Questo in un Modulo Public
    Public Function FileExist(ByVal str As String) As Boolean
        On Error Resume Next
        FileExist = (GetAttr(str) And vbDirectory) = 0
    End Function

    Rinomina come meglio credi...
  • Grazie mille @Alex!!!
    Ma come facevo ad imparare una cosa così!
    p.s. Ho tolto la funzione (FILE_EXIST] perchè sono sicuro che il file esiste.
    Poi, fatta la casella combinata (come mi hai indicato), l' ho resa invisibile e ho fatto in modo che sia uguale alla mia casella di testo (quella in cui ho il risultato delle operazioni). E' giusto così?
    Adesso il mio 2°programmino, strutturalmente è finito. Però è da guardare solo dal lato della maschera, vietato guardarci dietro!
    Grazie ancora per i vostri preziosi consigli!!!
    Buon pomeriggio.
  • Filippo70 ha scritto:


    Grazie mille @Alex!!!
    Ma come facevo ad imparare una cosa così!
    p.s. Ho tolto la funzione (FILE_EXIST] perchè sono sicuro che il file esiste.
    Male... concettualmente è bene non lasciare al caso queste attenzioni.

    Filippo70 ha scritto:


    Poi, fatta la casella combinata (come mi hai indicato), l' ho resa invisibile e ho fatto in modo che sia uguale alla mia casella di testo (quella in cui ho il risultato delle operazioni). E' giusto così?
    Se va bene a te... sicuramente va bene anche a me... come quanto hai fatto sopra...!

    Filippo70 ha scritto:


    Adesso il mio 2°programmino, strutturalmente è finito. Però è da guardare solo dal lato della maschera, vietato guardarci dietro!
    Grazie ancora per i vostri preziosi consigli!!!
    Buon pomeriggio.
  • Ok per la gestione dell' errore!
    Per quanto riguarda la casella combinata intendevo sapere se avevo recepito bene il tuo suggerimento, in quanto io ho un valore [Casella di Testo] che mi esce da un operazione e non lo devo scegliere io, quindi ho fatto:
    Me.TuaCombo = Me.MiaCasellaTesto
    Può andar bene o è una schifezza?
    Solo Sì/No.
    Grazie.
  • In quel caso basta un DlookUp come ControlSource... ma alcune volte(nelle Maschere continue) faccio cos' come hai fatto tu.
  • @Alex ha scritto:


    ... ma alcune volte(nelle Maschere continue) faccio cos' come hai fatto tu.
    Detto da te ......
    ..... Mi vien voglia di fare subito un altro db!
Devi accedere o registrarti per scrivere nel forum
7 risposte