newbie needs examples of creating a recordset and inserting datausing it in Access 2007?

R

r

I have created a Access 2007 database, Test.mdb, created a table called
"mytest" and created required fields in it. Now, using VBA(Visual Basic
for Applications) I want to insert data into it using a Recordset from a
Word document.

Can anyone please point me to a proper link where there is an example of
how data is inserted using a Recordset into a Access 2007 table?

I created one using resources on Web, but it is not correct.

Sub TestRecordsetexample

Dim cnn1 As ADODB.Connection
Set cnn1 = CurrentProject.Connection
Dim myRecordSet As New ADODB.Recordset
myRecordSet.ActiveConnection = cnn1

myRecordSet.Open "[Test]"

Dim myRecordSet As New ADODB.Recordset
myRecordSet.ActiveConnection = cnn1

myRecordSet.Open “SELECT * FROM mytest”

MsgBox myRecordSet.fields(0).value

myRecordSet.Close
cnn1.Close

End Sub

I get a compile time error for "Dim cnn1 As ADODB.Connection" as "User
defined Type not defined"


I want to choose Tools->References from the VBA Editor menu bar, but
References is disabled and I cannot choose it.

I guess I have to set up the connection from Word 2007(where the above
code is present as a Macro) to Access 2007(where the database is) which
I have not done.

Any advice would be welcome on how to fix the above error and some
examples of using Recordsets with Access 2007.

Thanks
 
R

r

Did you turn on the DAO reference?

Yes, I did it.
open the VBA editor.

click tools - References and select Microsoft ActiveX Data Objects

i also select Microsoft DAO

hope that helps

The code(modified a bit) is below:

Sub ReturnTableText()

Dim oTable As Table
Dim oRow As Row
Dim oRng As Range
Dim sText As String
Dim count As Integer
Dim dbMyDB As DAO.Database
Dim myRecordSet As DAO.Recordset


Set dbMyDB = OpenDatabase("C:\mydatabase.accdb") ' this line throws an '
error Run Time Error 429 ActiveX component can't create object or
' return reference to this object

Set myRecordSet = dbMyDB.OpenRecordset("Table1", dbOpenDynaset)

sText = ""
count = 0

For Each oTable In ActiveDocument.Tables

For Each oRow In oTable.Rows

If oRow.Cells.count > 1 Then
Set oRng = oRow.Cells(oRow.Cells.count).Range
oRng.End = oRng.End - 1
myRecordSet.Fields(count).Value = oRng.Text & Chr(44)
MsgBox myRecordSet.Fields(count).Value
count = count + 1

End If

Next oRow

Next oTable

myRecordSet.Close
dbMyDB.Close

End Sub

I checked the documentation at
http://msdn.microsoft.com/en-us/library/aa231060(VS.60).aspx
but could not solve it.

Any advice would be appreciated.

Thanks for your reply.
 
R

r

Yes, I did it.


The code(modified a bit) is below:

Sub ReturnTableText()

Dim oTable As Table
Dim oRow As Row
Dim oRng As Range
Dim sText As String
Dim count As Integer
Dim dbMyDB As DAO.Database
Dim myRecordSet As DAO.Recordset


Set dbMyDB = OpenDatabase("C:\mydatabase.accdb") ' this line throws an '
error Run Time Error 429 ActiveX component can't create object or
' return reference to this object

Set myRecordSet = dbMyDB.OpenRecordset("Table1", dbOpenDynaset)

sText = ""
count = 0

For Each oTable In ActiveDocument.Tables

For Each oRow In oTable.Rows

If oRow.Cells.count > 1 Then
Set oRng = oRow.Cells(oRow.Cells.count).Range
oRng.End = oRng.End - 1
myRecordSet.Fields(count).Value = oRng.Text & Chr(44)
MsgBox myRecordSet.Fields(count).Value
count = count + 1

End If

Next oRow

Next oTable

myRecordSet.Close
dbMyDB.Close

End Sub

I checked the documentation at
http://msdn.microsoft.com/en-us/library/aa231060(VS.60).aspx
but could not solve it.

Any advice would be appreciated.

Thanks for your reply.

Need to clarify one part. I open Access 2007, open the mydatabase.accdb
database, run the above code as a macro and it runs fine.

I open a Word 2007 document, try to run this as a macro and I get the
above error "Run Time Error 429 ActiveX component can't create object or
return reference to this object"
 
K

Keven Denen

I have created a Access 2007 database, Test.mdb, created a table called
"mytest" and created required fields in it. Now, using VBA(Visual Basic
for Applications) I want to insert data into it using a Recordset from a
Word document.

Can anyone please point me to a proper link where there is an example of
how data is inserted using a Recordset into a Access 2007 table?

I created one using resources on Web, but it is not correct.

Sub TestRecordsetexample

Dim cnn1 As ADODB.Connection
Set cnn1 = CurrentProject.Connection
Dim myRecordSet As New ADODB.Recordset
myRecordSet.ActiveConnection = cnn1

myRecordSet.Open "[Test]"

Dim myRecordSet As New ADODB.Recordset
myRecordSet.ActiveConnection = cnn1

myRecordSet.Open “SELECT * FROM mytest”

MsgBox myRecordSet.fields(0).value

myRecordSet.Close
cnn1.Close

End Sub

I get a compile time error for "Dim cnn1 As ADODB.Connection" as "User
defined Type not defined"

I want to choose Tools->References from the VBA Editor menu bar, but
References is disabled and I cannot choose it.

I guess I have to set up the connection from Word 2007(where the above
code is present as a Macro) to Access 2007(where the database is) which
I have not done.

Any advice would be welcome on how to fix the above error and some
examples of using Recordsets with Access 2007.

Thanks

You need to add a reference to ADO before you can use it. If you
insist on using ADO, you need to figure out why you can't get into
your references. An alternate solution might be to think about using
DAO as it is native to Access.

Keven
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top