ListBox

di il
5 risposte

ListBox

Buongiorno, faccio richiesta alle vostre competenze per risolvere 2 problemi su ListBox.

Problema nr. 1:
Ho una ListBox chiamata ListBoxMemo, larga circa 9 cm con origine riga una query di selezione.
SELECT [ID], [Data], [Ora], [Memo] FROM tblMemo ORDER BY Data DESC;
E' suddivisa in 4 colonne (0 cm; 1,7 cm; 1 cm; 10 cm)
La colonna nr. 4 non mostra tutto il contenuto del campo MEMO quando tale campo è popolato da tanti caratteri (diciamo oltre i 25 caratteri). Ho provato ad allargare la colonna da 10 cm a 20 cm ma anche se mi sposto con la barra di scorrimento orizzontale, il risultato non cambia. Probabilmente non si può fare o devo utilizzare tecniche diverse, ma ovviamente non saprei.

Problema nr. 2:
Questo mio database ha il BE su un server e 3 FE su 3 PC collegati in rete. Da 3 anni a questa parte funziona tutto bene (le modifiche dei record li vedo in tempo reale su tutti e 3 i PC).
Alcuni giorni fa ho creato una nuova tabella (tblMemo) con 4 campi (ID, Data, Ora, Memo), attraverso una maschera PopUp e tutto il relativo codice (query di inserimento) vado a popolare la tabella tblMemo.
Private Sub btnInsertNote_Click()
Dim sNota As String
Dim sql As String
Dim i As Integer
   
    sNota = Replace(Nz(txtMemo, ""), "'", "''")
        
If sNota = "" Then
    MsgBox "NON HAI SCRITTO ALCUNA UNA NOTA!!", vbCritical + vbOKOnly, "ATTENZIONE"
    Exit Sub
End If

    sql = "INSERT INTO tblMemo (ID, Data, Ora, Memo) VALUES (%1, '%2', '%3', '%4')"
    
    For i = 1 To 4
        sql = Replace(sql, "%" & i, Choose(i, ID, FormatDateTime(Now, vbShortDate), FormatDateTime(Now, vbShortTime), sNota))
    Next
        
    CurrentDb.Execute sql, dbFailOnError
    Forms!m_elenco_generale!ListMemo.Requery
    DoCmd.Close acForm, Me.name
    
End Sub
Con la ListBox vado a mostrare il contenuto dei campi della tabella tblMemo.
Purtroppo il mio problema è che se attraverso il FE del PC nr. 1 effettuo un inserimento di dati in questa tabella, non vedo aggiornarsi in tempo reale la ListBox del FE del PC nr. 2 e del PC nr. 3. Devo sempre agire manualmente.
Come posso rimediare al mio problema?
Pensavo di inserire un controllo sull'evento Timer, ma vorrei evitare.

5 Risposte

  • Re: ListBox

    alexps81 ha scritto:


    Problema nr. 1:Ho una ListBox chiamata ListBoxMemo, larga circa 9 cm con origine riga una query di selezione.
    E' suddivisa in 4 colonne (0 cm; 1,7 cm; 1 cm; 10 cm)La colonna nr. 4 non mostra tutto il contenuto del campo MEMO quando tale campo è popolato da tanti caratteri (diciamo oltre i 25 caratteri). Ho provato ad allargare la colonna da 10 cm a 20 cm ma anche se mi sposto con la barra di scorrimento orizzontale, il risultato non cambia. Probabilmente non si può fare o devo utilizzare tecniche diverse, ma ovviamente non saprei.
    Quando allarghi/stringi le singole colonne, devi preoccuparti di modificare anche il valore di "Larghezza elenco". Generalmente il valore di "Larghezza elenco" dovrebbe corrispondere alla somma dei valori di "Larghezza colonne".
  • Re: ListBox

    Come supponevo. Quindi devo obbligatoriamente allargare la Listbox....beh peccato. Credo che devo sostituire la listbox con qualcos'altro a questo punto.
    Per il problema nr. 2 hai suggerimenti?
  • Re: ListBox

    alexps81 ha scritto:


    Per il problema nr. 2 hai suggerimenti?
    Non sono pratico di FE e BE...quindi rischierei di dirti cavolate. Provo a rispondere su quel poco che posso capirci io.
    Quando dici

    alexps81 ha scritto:


    Alcuni giorni fa ho creato una nuova tabella (tblMemo) con 4 campi (ID, Data, Ora, Memo), attraverso una maschera PopUp e tutto il relativo codice (query di inserimento) vado a popolare la tabella tblMemo.
    non capisco poi il nesso con il codice successivo. A cosa serve quel codice? Per inserire valori predefiniti solo in caso di "input vuoto"?
    Possibile cavolata: che succede se fai un Requery su tutta la maschera?
  • Re: ListBox

    Il codice serve a popolare i campi della tabella tblMemo.
    Il Requery l'ho provato e funziona ma l'ho inserito in una Sub che utilizzo sempre ma è una soluzione poco elegante. Forse devo inserirla in un evento della maschera? Ho provato su AfterUpdate e su Attivazione ma niente. Ho scritto
    Me.ListBoxMemo.Requery
    Finché lo scrivo l'interno di una Sub che poi vado a lanciarla allora funziona. Ma vorrei evitare di dover lanciare per forza la Sub specifica....a meno che non la scrivo in tutte le Sub che utilizzo....
  • Re: ListBox

    alexps81 ha scritto:


    Il codice serve a popolare i campi della tabella tblMemo.
    Sempre ammesso io abbia compreso il tuo codice, ma non ti conviene impostare 4 Valori predefiniti ed eviti l'impostazione da codice?
Devi accedere o registrarti per scrivere nel forum
5 risposte