[Visual Basic][Access] Referring to an arbitrary field
A few days ago I asked about some code to loop through controls on a form. Stompy gave me a snippet for that and it's been very useful several times already. However, I'm now trying to use it as a lazy (plus efficient and futureproof) way of uploading data from TextBoxes and ComboBoxes, but I'm having trouble.
I have associated each of the relevant Controls with a field in the database, which is associated with a Data Control on the same form.
The code I'm using to try to add a new record is shown below.
Private Sub cmdAdd_Click()
cmdAdd.Enabled = False
Dim strDbName As String
Dim dbDatabase As Database, rsProperty As Recordset
strDbName = App.Path & "\EstateAgent.mdb"
Set dbDatabase = DBEngine.Workspaces(0).OpenDatabase(strDbName)
Set rsProperty = dbDatabase.OpenRecordset("properties")
rsProperty.AddNew
Dim e As Control
For Each e In Me.Controls
MsgBox e.Name
If (e.DataSource = Data1) Then
rsProperty!e.DataField = e
End If
Next
rsProperty.Close
dbDatabase.Close
Me.Refresh
cmdAdd.Enabled = True
End Sub
It doesn't like the line 'rsProperty!e.DataField = e' and returns an error 'Method or Data Object not found.'
I presume this is because it's trying to find a field called 'e.DataField', rather than the field that it holds. Is there any way I can make it look for whatever field e.DataField holds?
__________________
"No one was behaving from very Buddhist motives. Then, thought Pigsy, he was hardly a Buddha, nor was he a monkey. Presently, he was a pig spirit changed into a little girl pretending to be a little boy to be offered to a water monster. It was all very simple to a pig spirit."
|