Solved

Creating a DSN-less, updatable SQL Server linked table in Access 2007

Posted on 2012-12-21
8
1,247 Views
Last Modified: 2012-12-22
In Access 2007, I've created a DSN-less connection to a SQL Server 2008 R2 table, to create a linked table which I've dropped into an Access form. I followed this MS link:

http://support.microsoft.com/kb/892490

In VBA, I used the Form_Open event to call "AttachDSNLessTable" as outline in the KB article.

Q1: I see "Recordset is not updateable", and it won't let me edit the recordset. I'm assuming it doesn't maintain connection to the SQL table. How do I change this so I can add/edit/delete records in this linked table (and thus have them automatically propogate to the SQL table)?

Q2: From VBA, I'd like to be able to update this linked table in certain spots in a procedure. How do I do so?

I suspect these 2 questions are related. Thanks.
0
Comment
Question by:jdallen75
  • 4
  • 3
8 Comments
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
Q1: You probably missed to add a Timestamp field in the SQL Server table and relink it.

Q2: Like any other recordset using DAO.

/gustav
0
 

Author Comment

by:jdallen75
Comment Utility
There is a timestamp field, but the records are not necessarily unique on that field (it's an "edited" field). How does that affect this?

I'm using ADO currently... How does this differ from DAO in this case?
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
Comment Utility
You will also need a primary key in the table in order to edit it from Access.
0
 

Author Comment

by:jdallen75
Comment Utility
Thanks, fyed. That's probably it ... I didn't create the table :-P
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:jdallen75
Comment Utility
I found the problem: Access can't handle bigint datatypes, which is what the primary key was identified with.

That takes care of Q1.

I'm still having an issue with Q2: namely, I'd like to be able to update the linked table (the same as going through the Linked Table Manager, selecting the linked table, and updating manually), but through VBA code. I've come across dozens of blogs and nothing seems to update.

I'd like this so if Access has been open for some time, the user can click a Refresh button to ensure that what they see on screen is true to the SQL table.
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
For that you only need to requery the recordset of the form the user is watching.

Relinking is only needed when schema changes (adding/modifying fields etc.) have taken place.

/gustav
0
 

Author Comment

by:jdallen75
Comment Utility
Gustav,

Any idea what that syntax would look like? I ask because I tried a few methods, one of which used a ".RefreshLink" or ".Refresh"(?) and the table didn't update when an underlying record change had happened.
0
 
LVL 49

Accepted Solution

by:
Gustav Brock earned 350 total points
Comment Utility
It is method Requery.

Method RefreshLink is for refreshing linked tables when the connection string has changed.

/gustav
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
No matter the version of Windows you are using, you may have some problems with Windows Search running too slow or possibly not running at all. Before jumping into how you can solve this issue, just know there are many other viable alternative deskt…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
The viewer will learn how to simulate a series of coin tosses with the rand() function and learn how to make these “tosses” depend on a predetermined probability. Flipping Coins in Excel: Enter =RAND() into cell A2: Recalculate the random variable…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now