473,395 Members | 1,972 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Best Way to Get At Data in Another mdb

Hi All

Can I have some feedback on the best way to access data held in an mdb on a
separate server over a LAN (and WAN for that matter). I currently use DoCmd
to bring in the relevant tables linked to the external mdb & (tdf.delete to
remove 'em when I'm done). I then use standard CurrentDB, db.OpenRecordset
(strSQL), stuff to get at the treasure therein (being: 2 tables (1 - M) of
c.1250 records comprising c.10 fields) . I'll need to write back to these
external tables - but will probably be able to get away with an update query
as I'm datestamping the records with an action undetaken in my local mdb

I've never attempted ODBC /DSN and wondered whether I ought to getting stuck
into this instead of my tried and trusted method? I'm currently in Acc 97 /
Win NT 4.0 but moving to Acc 03 runtime Win Xp next year (if that alters
anything). I basically want to do tha right thing by way of performance,
network traffik etc

TIA
Paul
Nov 15 '05 #1
11 1611
"Paul Wagstaff" <pa**********@blueyonder.co.uk> wrote in
news:LO*****************@fe3.news.blueyonder.co.uk :
Can I have some feedback on the best way to access data held in an
mdb on a separate server over a LAN (and WAN for that matter). I
currently use DoCmd to bring in the relevant tables linked to the
external mdb & (tdf.delete to remove 'em when I'm done). I then
use standard CurrentDB, db.OpenRecordset (strSQL), stuff to get at
the treasure therein (being: 2 tables (1 - M) of c.1250 records
comprising c.10 fields) . I'll need to write back to these
external tables - but will probably be able to get away with an
update query as I'm datestamping the records with an action
undetaken in my local mdb
Sounds to me like you're doing an awful lot of work that's
unnecessary. The Query builder allows you to write queries against
data stored in another MDB without needing to link tables (see the
query properties for the SOURCE DATABASE property). You can write
SQL that has the IN clause pointing to the other MDB and use that as
the recordsource of a form, so that you could edit the data
directly, rather than using DAO.

Of course, either method is only appropriate on a LAN. You just
can't do it safely on a WAN at all.
I've never attempted ODBC /DSN and wondered whether I ought to
getting stuck into this instead of my tried and trusted method?
I'm currently in Acc 97 / Win NT 4.0 but moving to Acc 03 runtime
Win Xp next year (if that alters anything). I basically want to do
tha right thing by way of performance, network traffik etc


You can't use ODBC from Access to get to Jet data -- it's not
permitted.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 15 '05 #2
"David W. Fenton" <dX********@bway.net.invalid> wrote

Of course, either method is only appropriate on a LAN. You just
can't do it safely on a WAN at all.


Can. Have. Although its been a long five months making changes and
testing, I can now safely say that an Access FE/Jet BE can be made to
perform well over a WAN. This is of course, my experience only, but with
around 80 users at three sites, no use of linked tables, making well over
1000 connections/saves/queries to the db per day, the problems are reduced
to a small number. All resolve into either my own coding errors, or "Server
busy" (about 8 per day); there are no issues with loss of data or
corruption.

I wouldn't recommend it, of course, (I was forced into it), but it will work
with sufficient care. Performance is good - less than 1/2 second for most
updates to the server - and only noticeably slow for when running reports of
large data sets.

--
Darryl Kerkeslager

Nov 15 '05 #3
"Darryl Kerkeslager" wrote
Of course, either method is only appropriate on a LAN. You just
can't do it safely on a WAN at all.
Can. Have. Although its been a long five months making changes and
testing, I can now safely say that an Access FE/Jet BE can be made to
perform well over a WAN. This is of course, my experience only, but with
around 80 users at three sites, no use of linked tables, making well over
1000 connections/saves/queries to the db per day, the problems are

reduced to a small number. All resolve into either my own coding errors, or "Server busy" (about 8 per day); there are no issues with loss of data or
corruption.
Verrrrrry interesting! You are the first "regular" here to document that. I
suspect your WAN is likely faster than some others. But it is good to know,
if one is "forced into" a situation where it is the only alternative, as was
your case.
I wouldn't recommend it, of course, (I was forced into it), but it will work with sufficient care. Performance is good - less than 1/2 second for most updates to the server - and only noticeably slow for when running reports of large data sets.


I've seen "noticeably slow" on reports of large recordsets on a 4 MBPS LAN.
Nov 15 '05 #4
"Larry Linson" <bo*****@localhost.not> wrote
Verrrrrry interesting! You are the first "regular" here to document that.
I suspect your WAN is likely faster than some others. But it is good to
know, if one is "forced into" a situation where it is the only
alternative, as was your case.


Unfortunately, I haven't been able to find an easy way to measure the real
world speed of the connection, but I can put it in perspective: I also
connect over VPN through Comcast, and have found this connection to be
marginally slower than the office WAN.

--
Darryl Kerkeslager

Nov 16 '05 #5
"Darryl Kerkeslager" <ke*********@comcast.net> wrote in
news:AJ******************************@comcast.com:
"David W. Fenton" <dX********@bway.net.invalid> wrote

Of course, either method is only appropriate on a LAN. You just
can't do it safely on a WAN at all.
Can. Have. Although its been a long five months making changes
and testing, I can now safely say that an Access FE/Jet BE can be
made to perform well over a WAN. This is of course, my experience
only, but with around 80 users at three sites, no use of linked
tables, making well over 1000 connections/saves/queries to the db
per day, the problems are reduced to a small number. All resolve
into either my own coding errors, or "Server busy" (about 8 per
day); there are no issues with loss of data or corruption.


Er, how does "server busy" come up in an all-Jet Access application?
I wouldn't recommend it, of course, (I was forced into it), but it
will work with sufficient care. Performance is good - less than
1/2 second for most updates to the server - and only noticeably
slow for when running reports of large data sets.


If you're running a server back end, of course it's safe.

But if it's Jet for the back end, it's never going to be safe.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 16 '05 #6
"David W. Fenton" <dX********@bway.net.invalid> wrote
Er, how does "server busy" come up in an all-Jet Access application?
That's what my MsgBox says :) The actual errors are various - "Unrecognized
database format", etc- but I include code that lets me know exactly when the
error occurred, and it is at the line of code that opens the database
connection.
If you're running a server back end, of course it's safe.

But if it's Jet for the back end, it's never going to be safe.


Well, I don't know exactly what you mean by safe, then. I'm not running a
hospital or bank on this app; so I'm not risking a patient's life or
livelihood. And yes, I realize that it *can* in fact crash on the BE, and
we could lose and have to recreate a days work - however, it is "safe
enough", which is a line that you have to draw somewhere for most any
database.

--
Darryl Kerkeslager


Nov 16 '05 #7
mmm. . . me neither. Having to do something similar I set up a VPN -
while muttering curses under my breath, hair pulling, etc. I found the
only way that performance was feasible on forms with even moderate
recordsets was to avoid all the native Access criteria methods like the
plague (subforms being the worst), and have a local table (I lovingly
call tSettings). Say I have a list on a form that finds a record, when
the user clicks on the list, I write the criteria to the settings
table. The form's recordsource is limited to the setting so I just
refresh. Only the needed records are pulled. The biggest performance
gains were from turning off subdatasheets - huge gains.
Larry, I see you around a lot, giving us fellow gearheads good advice,
do you have any tips?
Pachydermitis

Nov 16 '05 #8
This is a Probation&Parole database. In most cases, an officer/secretary
works on one offender at a time.

Each form is bound to a local table, which mirrors the BE table. When the
offender is to be edited, all the records pertaining to that offender only
are copied to the local FE.

A Save operation essentially updates the BE using the FE data, or inserts a
new record in the BE and copies the new id# to the FE. Only one offender
table at a time is modified for most operations.

All SQL done with ADO Connections; no linked tables.

Almost all other tables not directly related to offenders (lookups, mostly)
are stored locally and on the BE. They rarely if ever change.


--
Darryl Kerkeslager
Nov 16 '05 #9
Thanks David - I'll look into using IN (it never ocurred to me!).

If I can ask 2 related questions: why would one prohibit using Access over
a WAN, apart from risks to the integrity of the data/databse itself, could
anything bad happen? and,

Our org. insists on no more than *15* concurrent (by which, they mean
simultaneous) connections to an Access database - I find this to be too
restrictive and often exceed this figure without any noticable detrimental
effects. So, what are the risks if one was to exceed this figure? Is there a
linear trade-off between performance (to the database and/or network) and
the number of users having a database open? I want to push my employer
into taking a more relaxed approach to both operating over the WAN ('we'll
own this risk - such as it is') and especially increasing the number of
simultaneous accesses, and could do with some expert feedback to respond to
the bureacratic 'Non' which I can hear even as I post this question.

As ever, I'm grateful for any and all advice.

Paul.


"David W. Fenton" <dX********@bway.net.invalid> wrote in message
news:Xn**********************************@216.196. 97.142...
"Paul Wagstaff" <pa**********@blueyonder.co.uk> wrote in
news:LO*****************@fe3.news.blueyonder.co.uk :
Can I have some feedback on the best way to access data held in an
mdb on a separate server over a LAN (and WAN for that matter). I
currently use DoCmd to bring in the relevant tables linked to the
external mdb & (tdf.delete to remove 'em when I'm done). I then
use standard CurrentDB, db.OpenRecordset (strSQL), stuff to get at
the treasure therein (being: 2 tables (1 - M) of c.1250 records
comprising c.10 fields) . I'll need to write back to these
external tables - but will probably be able to get away with an
update query as I'm datestamping the records with an action
undetaken in my local mdb


Sounds to me like you're doing an awful lot of work that's
unnecessary. The Query builder allows you to write queries against
data stored in another MDB without needing to link tables (see the
query properties for the SOURCE DATABASE property). You can write
SQL that has the IN clause pointing to the other MDB and use that as
the recordsource of a form, so that you could edit the data
directly, rather than using DAO.

Of course, either method is only appropriate on a LAN. You just
can't do it safely on a WAN at all.
I've never attempted ODBC /DSN and wondered whether I ought to
getting stuck into this instead of my tried and trusted method?
I'm currently in Acc 97 / Win NT 4.0 but moving to Acc 03 runtime
Win Xp next year (if that alters anything). I basically want to do
tha right thing by way of performance, network traffik etc


You can't use ODBC from Access to get to Jet data -- it's not
permitted.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc

Nov 16 '05 #10
> If I can ask 2 related questions: why would one prohibit using Access
over a WAN, apart from risks to the integrity of the data/databse itself,
could anything bad happen? and,


The simple reason is that *many* Access apps are poorly written, and end up
pulling a lot of data over the server. No, it doesn't at all need to be
this way, but there are probably 20 apps in use for every copy of Access
purchased, and the bulk of them are written by people who have never heard
of CDMA ;) and have no idea to separate BE/FE, or use queries to limit data.
Think about pulling 10k records over the WAN every time a user wants to see
one record, and multiply that for 10 users many times a day, and you can
easily see how that could slow down all those important emails and people's
Internet radio.

Can anything else bad happen? Yeah, users complaining to the 'real' IT guys
that "the network is slow" and "why can't you make our network faster?"

--
Darryl Kerkeslager
Nov 17 '05 #11
"Paul Wagstaff" <pa**********@blueyonder.co.uk> wrote in
news:i7*******************@fe2.news.blueyonder.co. uk:
If I can ask 2 related questions: why would one prohibit using
Access over a WAN, apart from risks to the integrity of the
data/databse itself, could anything bad happen?


To update the back end, even via ADO, even if you're updating 1
record, substantial parts of the BE MDB have to be pulled across
the
WAN. THat means the headers of that BE are opened across the wire.

Now, the risk here depends on the stability and bandwidth of the
WAN. I have a client with a Gigabit WAN running over dedicated
fiber
and would never worry about running even the most poorly-designed
Access app across that WAN (indeed one of the two apps I've been
involved with was one I took over that was very badly designed, and
I've never altered most of the problems, since it was working well
enough, after I split the thing and gave all the users their own
front ends).

But to me, because the most important part of the MDB has to be
pullsed across the wire, I'd be very wary of doing anything, even
quick updates, across a WAN.

But by WAN, I'm talking about something that is less than half the
bandwidth of 10BaseT and not as stable as 10BaseT.

There are lots of WANs these days that are faster and more stable
than some of the LANs of 10-15 years ago (remember Ethernet over
coax? What was that, 4.xomething Mbps?).

To me, it's often more cost-effective in a WAN environment to set
up
a Terminal Server and run the Access app from there than it would
be
to completely re-engineer the app to be unbound to the back end.
That kind of unbound app basically takes away all the advantages of
using Access in the first place. Running on TS would also be faster
for the end users, and easier to administer, while being less risky
with the data. When you add up all the costs of engineering to run
across the WAN, and include the potential damage if something goes
wrong, Terminal Server wins hands down.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 17 '05 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

16
by: D Witherspoon | last post by:
I am developing a Windows Forms application in VB.NET that will use .NET remoting to access the data tier classes. A very simple way I have come up with is by creating typed (.xsd) datasets. For...
5
by: Andrew S. Giles | last post by:
I thought I would post here, as I am sure someone, somewhere has run into this problem, and might have a good solution for me. I am writing an applicaiton in C# that will accept data and then put...
14
by: 42 | last post by:
Hi, Stupid question: I keep bumping into the desire to create classes and properties with the same name and the current favored naming conventions aren't automatically differentiating them......
4
by: T.Jackson | last post by:
Hi guys, I want to display the data of a table in a datagrid in one form, & enable the user to edit the details of a particular record in another form. I want the following features, 1....
8
by: Art | last post by:
Hi folks, I'm writing a traditional desktop app using VB.NET and am stumbling over what seems like a very basic question: My app does not need to be connected to a server or another computer....
4
by: Dave | last post by:
(My apologies for posting this on two forums. I have just found out the other one was the incorrect location) I am writing a VB.NET 2003 web application to operate on my company's intranet. It...
16
by: Rex | last post by:
Hi All - I have a question that I think MIGHT be of interest to a number of us developers. I am somewhat new to VIsual Studio 2005 but not new to VB. I am looking for ideas about quick and...
29
by: gs | last post by:
let say I have to deal with various date format and I am give format string from one of the following dd/mm/yyyy mm/dd/yyyy dd/mmm/yyyy mmm/dd/yyyy dd/mm/yy mm/dd/yy dd/mmm/yy mmm/dd/yy
4
by: trullock | last post by:
Hi, Can anyone suggest the best way to go about the following... I'm tracking clicks (mouse down x,y coordinates) on a web page by using some javascript to create an XHR which sends the...
3
by: Giampaolo Rodola' | last post by:
Hi, I'd like to know if there's a way to determine which is the best buffer size to use when you have to send() and recv() some data over the network. I have an FTP server application which, on...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.