Access Replication

G

Guest

I am having trouble with my replicated database. I am replicating queries,
forms and reports. In fact, when you set up a design master Access
automatically replicates forms, reports and macros. I don't know why I keep
hearing not to do that. This has been working fine for at least a year. Now
when I run synch now, it doesn't update my query. The query is marked to
replicate. In fact, the query on the replica is blank and perfect at the
design master. What can I do to fix this?
 
J

Jeff Boyce

Chris

This is a generic MS Access newsgroup. You might find more "eyes" on your
question if you re-post to the replication newsgroup.

Regards

Jeff Boyce
Microsoft Office/Access MVP
 
D

David W. Fenton

I am having trouble with my replicated database. I am replicating
queries, forms and reports. In fact, when you set up a design
master Access automatically replicates forms, reports and macros.

If you had a properly split database, with tables in one MDB and
forms/reports/queries in another, you would replicate the data MDB
and *not* replicate the front end MDB.
I don't know why I keep
hearing not to do that.

Here's why it's dangerous to replicate a front end:

1. Replication is a *Jet* technology. What that means is that it
runs at a level *below* Access that knows nothing about the
specifics of what Access is storing in Jet tables. Now that would
sound like it oughtn't be an issue -- data is data, right? But it
*is* an issue, as Jet Replication was never fully stress-tested with
Access projects. What this means is that Jet Replication works fine
for tables and queries and not so well for forms/reports/etc.

2. There is no logical reason for a front end to be replicated. If
you need to update a front end, you just send a new one and copy it
over top of the old one, as the old one doesn't have any data in it
that the user needs to save. Replication is inherently two-way and
there is no need for there to be updates flowing back from replicas
of the front end. What happens is that you get lots of conflicts on
the Access objects, because, despite what you might think, there are
things saved in the forms, for instance (such as filters and sorts),
and those need to be reconciled.

3. This may sound like it's only a little higher level of conflicts
than you might conceivably have with your data tables, but it's not,
because starting with Access 2000, the method of storing the Access
project was markedly changed, from keeping a record in a system
table for each Access object, to keeping a *single* record for the
whole project, with a BLOB field storing THE ENTIRE ACCESS PROJECT
IN ONE FIELD. This would be analogous to having a single record in
your data table with a memo field that every user updated each time
they used the database -- imagine the conflicts and corruption that
would result from that! This is precisely what you are doing when
you replicate an Access front end, buying a massive number of
conflicting updates to a single field in one record, and the data in
that field is *enormously* complicated, so you're counting on every
synch successfully writing that field correctly.

The risk of replicating a front end may not be obvious in all cases
-- sometimes you can do it for a long time and nothing bad happens.
But when eventually something *does* go wrong, you risk losing the
whole Access project, corrupted beyond recovery and no longer able
to synch.

Is that worth the risk for the complete lack of any benefit that
comes with replicating a front end MDB?
This has been working fine for at least a year.

Sometime in the next year, or the year after that, or the year after
that, it will stop working.
Now
when I run synch now, it doesn't update my query. The query is
marked to replicate. In fact, the query on the replica is blank
and perfect at the design master. What can I do to fix this?

Try recreating the query in the design master, replicating it and
seeing if the new one works in the replica.

This is precisely the kind of symptom of corruption that would
happen with the Access project (though queries are not stored as
part of the Access project BLOB, so far as I'm aware) -- something
works one day and then it won't synch its changes. And then the
object doesn't work at all. And then the problem spreads to other
objects.

Split your app and get rid of replication on the front end. There is
really no other way to use replication reliably.
 
A

Aaron Kempf

Access replication is not reliable enough for real world usage.

this is one of the prime reasons that you guys should be using Access Data
Projects

Aaron
certified DBA
 
D

David W. Fenton

Access replication is not reliable enough for real world usage.

There is no such thing as "Access replication." There is only "Jet
replication." And it *is* reliable enough for real-world usage, if
you do the work to learn how to use it safely.

Without driving lessons it wouldn't be safe for you to drive,
either.

It may not be safe for you to drive even with them.
this is one of the prime reasons that you guys should be using
Access Data Projects

And exactly what does that have to do with replicating data, you
complete frigging moron?
 
A

Aaron Kempf

because SQL Server is 100,000 times more reliable than MDB?


what do you mean 'what does that have to do with replication'

SQL Server replication is bulletproof.

JET REPLICATION IS NOT
 
D

David W. Fenton

SQL Server replication is bulletproof.

Really? How so? It never has problems? Never produces errors?

Seems to me that the only differences in reliability between Jet and
SQL Server replication are the same as the differences between
reliability of Jet (a file-based database engine) vs. SQL Server (a
server-based database engine).

In other words, this is not really anything that should not be
expected.

And you don't know anything at all about either kind of replication,
obviously or you wouldn't constantly parade your profound ignorance
for everyone to see.
 
G

Guest

I read and reread your email and I am not sure that I entirely
understand...however, I have noted that the size of my Design Master and the
replica are not the same so I assumed "something" was not replicated. What
would you suggest I do when I want to create reports, play with them and then
put them out for use? I was in the habit of doing the creation in the Design
Master and then synching with the replica once I was satisfied with the
report. Should I do something different? Thanks
Cheese
 
D

David W. Fenton

I read and reread your email and I am not sure that I entirely
understand...however, I have noted that the size of my Design
Master and the replica are not the same so I assumed "something"
was not replicated.

No, it doesn't mean that. You could compact both of them and perhaps
they'd be the same size, but not necessarily. Two replicas that have
been properly synched will contain the same *data* but will not
necessarily be binary identical, so you can't use file size to
determine if they've synched or not.
What
would you suggest I do when I want to create reports, play with
them and then put them out for use? I was in the habit of doing
the creation in the Design Master and then synching with the
replica once I was satisfied with the report. Should I do
something different?

Yes. You should definitely do something different. Split your app
into front end and back end, and make the back end replicable
(tables only) and do *not* replicated the front end (with your
forms/reports/etc.). When you have updated reports, send a new front
end to your users.

Or use something like Tony Toews's front-end updater:

http://www.granite.ab.ca/access/autofe.htm

Be sure you don't skip his article on why you must split your
application.
 
G

Guest

HI,

I have one follow-up question. While I was still in the habit of using the
Design Master to edit reports I made a change that created problems in one of
the forms that I couldn't rectify. My solution was to delete the Master and
recreate from the replica. So, in response to your suggestion,from the
Design Master I attempted to split the database and I got an error that
states that one of the tables is locked because it is already in use (no one
is in the database) or in a process. What can I do? Thanks!
Cheese
 
D

David W. Fenton

I have one follow-up question. While I was still in the habit of
using the Design Master to edit reports I made a change that
created problems in one of the forms that I couldn't rectify. My
solution was to delete the Master and recreate from the replica.
So, in response to your suggestion,from the Design Master I
attempted to split the database and I got an error that states
that one of the tables is locked because it is already in use (no
one is in the database) or in a process. What can I do?

Do you have an LDB file still there when you do not have the MDB
open? If so, try deleting it. If it can't be deleted, reboot your
PC, and that should release the lock.

If that doesn't help, it means your table is likely corrupted. Check
Tony's site for the corruption FAQ -- it's very good and covers all
the bases.
 
G

Guest

Hi,

It has been awhile since I have been able to work on this database so
forgive the time/memory lapse.
I had to recreate some indexing and relationships in my database after I had
been replicating/synching...but now have the original database back and
"un-replicated"!

So next I split the database on my personal drive. Then I put the front end
out on a shared drive for the users. I have created test queries and reports
in the front end of the db on my shared drive and then copy and paste over
the front end on the shared drive for the users. So far, I believe I have
been doing what I was directed to do and what I had read in the articles you
referenced. I did not use the coding but simply used the wizard to split the
database.
So my questions are:
Why would I need to make the back end replicable?
Do I ever need to synch? why or why not?
Will my process work as I have set it up?

Thanks, I am learning as I go and lack a good bit of knowledge about this.

Cheese
 
D

David W. Fenton

Why would I need to make the back end replicable?
Do I ever need to synch? why or why not?
Will my process work as I have set it up?

I don't know any of the answers to these questions.

Do you need replication? If not, then don't use it!
 

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

Similar Threads

replication is not complete 3
Replication not working 3
REPLICATION 1
Replication 3
replication 2
Synchronization does not work? 2
Design Master Question 4
Replication and splitting for Dummies 2

Top