Prev: trabalho
Next: Calculate working days between records
From: r on 30 May 2010 22:28 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
From: ArmySoldier72 on 31 May 2010 14:57 Did you turn on the DAO reference? open the VBA editor. click tools - References and select Microsoft ActiveX Data Objects i also select Microsoft DAO hope that helps Chris Just another Army Soldier -- ArmySoldier72 ------------------------------------------------------------------------ ArmySoldier72's Profile: http://www.thecodecage.com/forumz/member.php?u=1954 View this thread: http://www.thecodecage.com/forumz/showthread.php?t=206202 http://www.thecodecage.com/forumz
From: r on 31 May 2010 19:05 On 5/31/2010 2:57 PM, ArmySoldier72 wrote: > 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%28VS.60%29.aspx but could not solve it. Any advice would be appreciated. Thanks for your reply.
From: r on 31 May 2010 19:13 On 5/31/2010 7:05 PM, r wrote: > On 5/31/2010 2:57 PM, ArmySoldier72 wrote: >> 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%28VS.60%29.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"
|
Pages: 1 Prev: trabalho Next: Calculate working days between records |