In questi giorni sto costruendo un programma che deve operare con piu tabelle aperte nello stesso momento, ma ho un problema mi tocca riscrivire lo stesso codice per effettuare la stessa operazione, come posso fare per usare una sola procedura o funzione che mi permetta di risparmiare codice? qui sotto vi riporto del codice di esempio .....
questo e solo l'inizio immaginate di lavorare con 20 tabelle.......

Dim WithEvents adoMilan As Recordset
Dim WithEvents adoLazio As Recordset
Dim WithEvents adoRoma As Recordset
Dim mbDataChanged As Boolean

Private Sub Form_Load()

Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documenti\ProgettoCalcio\db1.mdb;"


Set adointer = New Recordset
Set adoMilan = New Recordset
Set adoLazio = New Recordset
Set adoRoma = New Recordset

adointer.Open "select N°G,GF,GS,P from Inter Order by N°G", db, adOpenStatic, adLockOptimistic
adoMilan.Open "select N°G,GF,GS,P from Milan Order by N°G", db, adOpenStatic, adLockOptimistic
adoLazio.Open "select N°G,GF,GS,P from Lazio Order by N°G", db, adOpenStatic, adLockOptimistic
adoRoma.Open "select N°G,GF,GS,P from Roma Order by N°G", db, adOpenStatic, adLockOptimistic


Set DataGrid3.DataSource = adointer
Set DataGrid2.DataSource = adoMilan
Set DataGrid1.DataSource = adoLazio
Set DataGrid4.DataSource = adoRoma



mbDataChanged = False
End Sub

Private Sub Command2_Click()
Select Case Combo5.Text
Case Is = "Inter"
Set DataGrid3.DataSource = adointer
With adointer
.MoveFirst
.Move (.RecordCount - Text1.Text)
Do Until .EOF
a = a + .Fields("P")
.MoveNext
Loop
Text6.Text = a
End With
Case Is = "Milan"
Set DataGrid3.DataSource = adointer
With adointer
.MoveFirst
.Move (.RecordCount - Text1.Text)
Do Until .EOF
a = a + .Fields("P")
.MoveNext
Loop
Text6.Text = a
End With
Case Is = "Lazio"
idem
Case Is = "Roma"
idem
End Select
End Sub