CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 5 of 5
  1. #1
    Join Date
    Sep 1999
    Location
    MA
    Posts
    6

    Problem with .AddNew using Access

    I'm having a problem with something very simple. I'm using an Access 2000 database, with a Visual Basic 6.0 front end. I'm opening the connection like this:


    Dim cnData as ADODB.Connection
    Dim rsCustomers as ADODB.Recordset




    ... then in the Form Load Event


    set cnData = new ADODB.Connection
    cnData.Provider = "Microsoft.Jet.OLEDB.4.0"
    cnData.ConnectionString = "Data Source= <path to the db>"
    cnData.Open

    set rsCustomers = new ADODB.Recordset
    rsCustomers.Source = "SELECT * FROM Customers"
    rsCustomers.ActiveConnection = cnData
    rsCustomers.CursorType = adOpenKeyset
    rsCustomers.CursorLocation = adUseClient
    rsCustomers.LockType = adLockOptimistic
    rsCustomers.Open




    ' At this point everything is fine. The user enters the data into the text boxes
    'and presses the save button, which calls the following code...

    The error occurs on the line after .AddNew
    The Error number is -2147217887
    The Error Message "Errors Occured"

    When I trapped the error description in a message box, I found out the the
    Err.Source is the Microsoft Cursor Engine.


    private Sub SaveData()
    With rsCustomers
    .AddNew
    !FName = txtFName 'it fails on this line
    !LName = txtLName
    !MI = txtMI
    !Address = txtAddress
    !City = txtCity
    !State = txtState
    !Zip = txtZip
    !Phone = txtPhone
    .Update
    End With
    End Sub




    This is driving me crazy! I hope someone can help

    Carl



  2. #2
    Join Date
    Jul 1999
    Posts
    111

    Re: Problem with .AddNew using Access

    Hi,

    This is sort of a long shot guess, but don't you need to assign the text property like this...?

    !FName = txtFName.text

    rather than

    !FName = txtFName

    Or are txtLName, txtFName, etc... variables?

    Roger



  3. #3
    Join Date
    Sep 1999
    Location
    MA
    Posts
    6

    Re: Problem with .AddNew using Access

    Hi Roger - thanks for taking the time to answer.

    txtFName and txtFName.Text yield the same result, because the .Text property is the default property of a Textbox. From a "readability" point of view txtFName.Text is the proper way to state it... any other ideas why I'm getting this error message?

    Carl


  4. #4
    Join Date
    Jul 1999
    Posts
    111

    Re: Problem with .AddNew using Access

    Hey, now you just taught me something. Not really hard to do as I am still somewhat new to VB.

    As for your problem, it seems to be a cursor problem so I wonder if you tried using a different setting for cursor type... like changing

    rsCustomers.CursorLocation = adUseClient

    to the default value

    rsCustomers.CursorLocation = adUseServer

    In the online help it says that adUseClient uses the local cursor engine rather than the driver suplied cursor... Since your error refers to the "cursor engine" you may be lacking something in that area. Trying the default value may prove that out... I'd say it's worth a try.

    If it's not that, I don't know. I use a slightly different syntax than you do... I pass the table name and connection ad parameters to rs.open all on one line. I also use the constant 'adCmdTable' instead of passing a query string to get the records. I really don't think these things have anything to do with the problem. I think you may need to reference or load a cursor engine.... or perhaps change I suggested above will help.

    Please let me know how you make out.

    Good luck!
    Roger



  5. #5
    Join Date
    Sep 1999
    Location
    MA
    Posts
    6

    Re: Problem with .AddNew using Access

    I have tried all of the Cursors and LockTypes. I went to Borders (bookstore) and found a very good book on MCSD exams. I read the section on programming ADO and I am doing the .AddNew and then the !<field name> = <value> the same exact way that they describe.

    On my way back home from Borders I was trying to figure out why I am getting a Cursor Engine Error? It is either a bad driver or a memory problem. I came home... re-booted the computer, and now it is working fine! This has been a REAL Enigma!!!

    I would like to know what caused this to happen.

    Thanks for you interest.
    Good luck to you,
    Carl


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured