J'essaie de migrer Access 2003 (fonctionnant correctement) vers Access 2007. Le code écrit dans VBA crée des problèmes. Comme j'ai une forme principale et 2 sous-formulaire. Dans la forme principale set de source d'enregistrements définie par une requête dynamique mais basée sur les données de formulaire principal lorsque j'essaie de définir le jeu d'enregistrements de sous-formulaire, l'accès à l'erreur 2007 se ferme &. Pourriez-vous s'il vous plaît aider quelqu'un pour savoir pourquoi cela se produit dans l'accès 2007.Problème de jeu d'enregistrements Access 2007
Public Sub LoadRecord(strRecId As String)
On Error Resume Next
Dim ctl As Access.Control
Dim strsql As String
Dim strID As String
Dim rs As ADODB.Recordset
strsql = "SELECT * from vwContractsMainForm WHERE ID = '" & strRecId & "'"
Call OLEDBConnect
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cnn
.Source = strsql
.CacheSize = 1
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseServer
.Open
End With
'Set the first sub form's Recordset property to the ADO recordset
Set Me.Recordset = rs '-------- this part creates the problem.
Me.UniqueTable = "tbl_contracts"
Set rs = Nothing
Set cnn = Nothing
Il serait utile d'ajouter le message d'erreur précis à votre question. Quel est votre modèle d'objet par défaut? Sauf si Me.Recordset est aussi ADODB alors vous aurez un problème. – heferav
Heferav. Notez qu'elle déclare les accidents d'accès. Il n'y a donc pas de message d'erreur. –
Pourquoi attribuez-vous un jeu d'enregistrements ADO au formulaire au lieu de simplement définir la propriété Recordsource du formulaire? Il n'y a rien sur l'instruction SQL ou les options que vous définissez pour votre jeu d'enregistrements qui indiquent n'importe quel besoin pour un jeu d'enregistrements ADO. Savez-vous que cela peut être fait de façon beaucoup plus simple? –