codice:
Private Sub Form_Load()
query4 = "SELECT apparatiusati.idlinea, apparaticonnessi.Apparato, Linea.idcentralino FROM Linea " & _
"INNER JOIN (apparaticonnessi INNER JOIN apparatiusati ON apparaticonnessi.idapparato = apparatiusati.idapparato) " & _
"ON Linea.idlinea = apparatiusati.idlinea;"

appusati.Open query4, conn, 3, 3
end sub

Private Sub carica()

appusati.Requery
appusati.MoveFirst
Do While Not appusati.EOF
   If appusati("idlinea") = linea("idlinea") Then
      List2.AddItem (appusati("apparato"))
      If appusati("apparato") = "Centralino" Then
         List2.ItemData(List2.NewIndex) = appusati("idcentralino")
         Frame6.Enabled = True
        Else
         List2.ItemData(List2.NewIndex) = 0
         Frame6.Enabled = True
      End If
   End If
   appusati.MoveNext
Loop

end sub

Private Sub Salva_Click()
Set generica = Nothing
generica.Open "apparatiusati", conn, 3, 3
Do While Not generica.EOF
   If generica("idlinea") = linea("idlinea") Then
      If generica("idapparato") = 1 Then
         linea("idcentralino") = 0
      End If
      generica.Delete
      generica.Update
   End If
   generica.MoveNext
Loop
If List2.ListCount > 0 Then
   For i = 0 To List2.ListCount - 1
       List2.ListIndex = i
       If List2.text = "Centralino" Then
          If centralino.EOF = True And centralino.BOF = True Then
             MsgBox ("Attenzione, non è presente in memoria nessun centralino! Prima di poter selezionare il centralino bisogna inserirlo")
             Exit Sub
            Else
             linea("idcentralino") = centralino("idcentralino")
          End If
       End If
       generica.AddNew
       generica("idlinea") = linea("idlinea")
       generica("idapparato") = List2.ItemData(List2.ListIndex)
       generica.Update
   Next
   generica.Close
End If
end sub
La sub carica la uso nel form_load e dopo aver salvato...