Visualizzare più record in una maschera

di Anonimizzato17834 il
7 risposte
Buonasera,
ho due tabelle legate da una relazione 1 a molti e voglio visualizzare i dati nelle due tabelle creando una sola maschera..
Tabella1: ID_1, NOME
Tabella2: ID_2, dati, ID_1

Con un bottone in vba eseguo una SELECT e le visualizzo nelle textbox., ma vedo solo la prima ovviamente e non mi fa vedere i dati successivi della tabella2.
Al posto delle textbox cosa è meglio utilizzare per vederne di più e insieme? La casella di riepilogo?

Grazie

7 Risposte

  • Access non si usa così... è indispensabile tu quanto meno possa acquisire le metodiche di base per l'accesso ai dati.

    P.s. per vedere i dati di entrambe si crea una query.
  • Si, ho creato una query con select che funziona correttamente e visualizza i risulati collegati delle tabelle (forse mi ero spiegata male), usando la query guidata (mi escono ovviamente tutti i dati in questa modalità , come foglio di stile). Quando creo però la maschera e ci inserisco questa query e la associo alla textbox mi fa vedere solo il primo risultato.
    Che strumento devo usare al posto della textbox per visualizzare più record?
  • Sempre un buon libro...

    Devi creare una maschera con l'autocomposizione basata sulla query... lascia stare la Select... fai una query salvata.
    Il wizard ti guida a creare una maschera in modalità continua...

    Tuttavia ribadisco poi chiudo che se non compri un libro... Non ci siamo nemmeno con la terminologia.
  • Al posto della textbox utilizzo una casella di riepilogo (dovrebbe essere una listbox), ma continua a restituirmi un solo record.

    Private Sub btn_find()
    Dim tmpRS As DAO.Recordset
    Set tmpRS = CurrentDb.OpenRecordset("SELECT exam FROM exam WHERE name = '" & Me.txt_name & "' ")
    Dim i As Integer
    For i = 0 To tmpRS.RecordCount - 1
    Me.listbox.AddItem (tmpRS.Fields(i))
    tmpRS.MoveNext
    Next i
    End Sub

    Non penso di sbagliare la SELECT ma tmpRS.RecordCount è 1. Quindi prende solo un esame (con il movenext va al secondo.).
    Qualcuno, gentilmente, mi saprebbe aiutare? cosa sbaglio?
    Grazie
  • meme'1992 ha scritto:


    continua a restituirmi un solo record.

    @Alex ha scritto:


    Il wizard ti guida a creare una maschera in modalità continua...
    Le maschere hanno più tipi di visualizzazioni. Devi riflettere su "maschera singola", "maschera continua", "maschera foglio dati". Tu hai una MASCHERA SINGOLA, per questo vedi sempre un record alla volta.

    1. Apri la maschera in visualizzazione struttura
    2. Fai doppio click sul quadratino in alto a sinistra della maschera per vedere le sue Proprietà
    3. Paletta Tutte, Visualizzazione predefinita:
    scegli "Maschere continue" oppure "Foglio dati"
    4. Salva tutto
  • Prova a modificare il codice nel seguente modo:
    
    Private Sub btn_find()
    Dim tmpRS As DAO.Recordset
        Me.ListBox.RowSource = ""
        Set tmpRS = CurrentDb.OpenRecordset("SELECT exam FROM exam WHERE name = '" & Me.txt_name & "'")
        Do While Not tmpRS.EOF
            Me.ListBox.AddItem tmpRS!exam
            tmpRS.MoveNext
        Loop
    End Sub
    
  • CarlettoFed ha scritto:


    Prova a modificare il codice nel seguente modo:
    
    Private Sub btn_find()
    Dim tmpRS As DAO.Recordset
        Me.ListBox.RowSource = ""
        Set tmpRS = CurrentDb.OpenRecordset("SELECT exam FROM exam WHERE name = '" & Me.txt_name & "'")
        Do While Not tmpRS.EOF
            Me.ListBox.AddItem tmpRS!exam
            tmpRS.MoveNext
        Loop
    End Sub
    
    Idem come l'altro...
Devi accedere o registrarti per scrivere nel forum
7 risposte