PDA

View Full Version : [VBA][ACCESS]apertura due recordset


antony85
23-06-2008, 15:31
salve ragazzi,ho un problema con access vba ado,

in pratica vorrei aprire due tabelle diverse,nello stesso form,formulando una query per la seconda tabella ke prende nella clausola where il valore della combobox(ke richiama la prima tabella),impostando quindi due recordset diversi(mi andrebbe bene anche sovrascrivere il primo rimanendo cosi un solo recordset(ma neanche in qst caso funziona)),ma purtroppo access mi da errore
posto il codice sotto...aiutatemi sono bloccato!


Private Sub cmb_Change()
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Dim rst2 As ADODB.Recordset
Set rst2 = New ADODB.Recordset
Set rst = New ADODB.Recordset
Set con = CurrentProject.Connection
rst.Open "select vista_panoramica,bassa_stagione,media_stagione,alta_stagione,capienza from admin_camera where numero=" & cmb.Value, con, 1, 3
Set Me.Recordset = rst
vvista.ControlSource = "Vista_Panoramica"
vbassa.ControlSource = "Bassa_Stagione"
vmedia.ControlSource = "Media_Stagione"
valta.ControlSource = "Alta_Stagione"
vcapienza.ControlSource = "capienza"
rst.Close
Set rst = Nothing
rst2.Open "select inizio_occupazione,fine_occupazione from admin_disponibilità where numero_camera=" & cmb.Value, con, 1, 3
Set Me.Recordset = rst2
Do Until rst2.EOF
testo.AddItem rst2.Fields("inizio_occupazione") & ";" & rst2.Fields("fine_Occupazione")
rst2.MoveNext
Loop
End Sub

akyra
23-06-2008, 17:07
ma perchè non fai due sottomaschere in quel form? così puoi mettere tutti i recordset che vuoi


EDIT: inolte con quel codice, se non sbaglio non dovresti nemmeno riuscire ad assegnare un recordset ad una maschera aperta...ci dovresti aggiungere un paio di comandi come

rst.LockType = adLockOptimistic
rst.CursorType = adOpenKeyset (oppure adOpenStatic)

prima di aprire l'oggetto recordset, e prima di assegnarlo alla maschera con "set me.recordset = rst"

antony85
23-06-2008, 18:57
utilizzo (1,3) per assegnare le propietà ke dici(rst.Open "select vista_panoramica,bassa_stagione,media_stagione,alta_stagione,capienza from admin_camera where numero=" & cmb.Value, con, 1, 3)
il form ha al suo interno due pagine,e questo voglio ke si faccia in una pagina...

MarcoGG
24-06-2008, 08:20
in pratica vorrei aprire due tabelle diverse,nello stesso form,formulando una query per la seconda tabella ke prende nella clausola where il valore della combobox(ke richiama la prima tabella),impostando quindi due recordset diversi(mi andrebbe bene anche sovrascrivere il primo rimanendo cosi un solo recordset(ma neanche in qst caso funziona)),ma purtroppo access mi da errore
...


Cosa fattibile, ma se puoi posta il DB, o almeno una descrizione chiara e precisa dei campi delle tabelle coinvolte e di cosa vuoi ottenere ( molto meglio che lasciare a chi legge il compito di dedurre il tutto dal codice... ;) ).

antony85
24-06-2008, 09:13
non posso postare il db,semplicemente vorrei sapere come devo fare x dichiarare due recordset (la sintassi) diversi(e utilizzarli chiaramente)senza ke il form mi vada in errore

MarcoGG
24-06-2008, 13:25
non posso postare il db,semplicemente vorrei sapere come devo fare x dichiarare due recordset (la sintassi) diversi(e utilizzarli chiaramente)senza ke il form mi vada in errore


Che errore ritorna Access ?