473,841 Members | 1,806 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Unrecognized database format 'filename.mdb'

I tested a FE/BE application developed in A2000 on a A2002 machine and got
this message when exiting the app. Clicking the only available button "OK",
exits the application, as intended.

The FE is just the mdb, not an mde. FE and BE are in different directories
on the same machine.

Are there settings, preferably via code, that I can add to stop this error?

Thank you for any help.

Larry Mehl
Nov 12 '05 #1
14 7152
"L Mehl" <me*********@cy vest.com> wrote:
I tested a FE/BE application developed in A2000 on a A2002 machine and got
this message when exiting the app. Clicking the only available button "OK",
exits the application, as intended.

The FE is just the mdb, not an mde. FE and BE are in different directories
on the same machine.

Are there settings, preferably via code, that I can add to stop this error?


No. This is an unusual situation.

FEs usually get corrupted when you share the FE among multiple users. Yet that
doesn't sound like the situation when you stated "you tested ..." Or when opened by
another program such as Word which, once the autosave hits, unretrievably scrambles
the file.

You also shouldn't have gotten the message when exiting the MDB. Unless you are
doing some very unusual code on exiting such as, possibly, setting an opendatabase to
the FE MDB

To explain this a bit. Access momentarily sets a flag when doing updates. Access
does not check this flag when the user is in the MDB. You should only see this
message when you are opening up the MDB. So it's rather interesting that this
happened when you closed the MDB.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Nov 12 '05 #2
We've been getting this message in our back-end since January, with
all users in the database, and have yet to find a cause. It happened
every day the first week, then randomly. Usually in the middle of the
day, but at least once it happened overnight when no one was using it
(maybe twice, I can't remember for sure). We've checked for improper
shut downs and unauthorized users, found nothing. The message only
happens when someone is connecting to the back-end - opening the
front-end or a merge document. For users who already had it open it
appears to be working fine, but sometimes it slows down to a crawl.

To fix it I close and re-open the back-end, which gives a message on
opening that it needs to be repaired, would I like it repaired? I say
yes, it repairs, and after that it's fine until the next time we get
the error.

Unless...someti mes the .ldb file hangs up and won't disengage. Then
it won't repair because it thinks it still has users (usually me, and
I know I closed my front-end), and I have to call our server people
and have someone delete it off the server.

I and 2 tech support people are working on this. Monday I made a new
DB file and transferred all the objects into it, but Tuesday we got
the error again. Our DB tech sent me this info from other groups:

-----------------------------------------------------
I also found this in the same Forum. all this is available if you go
to www.dbforums.com

I just had a nightmare with an Acces/VB system and I thought it might
save
somebody else the same trouble if I post some of the stuff I found out
while
fixing it.

The system is an Access 2000 MDB file on the server and a VB6
application that runs
on client PCs and connects via ADO 2.6. It is mission-critical for the
company I
wrote it for. The other day, the first person in to work booted his PC
and it 'went
all weird and then seemed to sort itself out'. (That's all I could get
out of him -
these people are not exactly hackers.) He then started my application
and started
using it. Soon afterwards several other clients were started too. Then
the client was
closed on the dodgy machine and, from that point on, only the clients
already
connected would work. Any other clients attempting to start would fail
at the
Connection.Open stage with the 'Unrecognized database format' error
message.

I then spent several hours screwing around re-booting clents and the
server,
uninstalling and reinstalling the app, installing Jet, reinstalling
MDAC on its own,
opening and testing connections and God knows what else. No joy at
all. I finally
decided that the database must have become corrupt. I took a deep
breath, closed the
last working clients and found there was still an LDB file. I deleted
that and tried
a new connection. Same error and (and this was interesting) the LDB
file stayed again
even though the attempt to connect failed. I opened the MDB file in
Access. It said
the database needed to be repaired. I said OK and it fixed it.

My theory is that there is some kind of header information in an MDB
file that states
what version it is and so on. This got corrupted when the dodgy
machine disconnected
so that, although clients that were alredy connected were fine, new
connections
failed because the header did not match ADO/Jet's expectations. Of
course, I'm
guessing because this is the sort of information companies like
Microsoft believe is
best kept secret. We don't need to know how it works, do we?

---------------------------------------
And this:

here is something that relates i think. the person could not get rid
of the ldb.
I, too, had a similar problem. I found that I could keep the
permissions set to
Change, but had to ensure that the directory in which the db resides
was set to not
inherit permissions from it's parent. It seemed that everytime a new
user logged onto
a given machine, it got messed up.

here is another:

I had a similar problem and it was related to directory and file
security properties;
it wasn't a 'machine' problem, but 'user' specific problem. I had to
change the
directory and file security to "All" for all database users.

and last, some guidelines for corruption.

Generally speaking ... (although this may not be news to you).

The top 5 key pointers on how to prevent corruption in the future:

(1) Ensure the front end forms are split from the backend tables -
i.e. in a
multiuser situation never have users sharing one file placed on the
network which
contains the forms and tables.
(2) Never compact and repair the database over the network, always do
this locally.
(3) If the database has been placed on a Windows 2000 Server, disable
opportunistic
locking. This is a technical issue, so please visit
http://www.datarevive.com/support/kb/kb2203.htm for further
information.
(4) Check or replace the network cards of suspect computers (faulty
network cards are
a common cause of corruption).
(5) Apply the latest service packs/software updates to Microsoft
Access.

Also, www.access-emergency.com (a competitor of ours) has some
excellent articles
regarding sniffing for network problems as the cause of corruption, so
this is worth
checking out.
------------------------------

Tony Toews <tt****@teluspl anet.net> wrote in message news:<96******* *************** **********@4ax. com>...
"L Mehl" <me*********@cy vest.com> wrote:
I tested a FE/BE application developed in A2000 on a A2002 machine and got
this message when exiting the app. Clicking the only available button "OK",
exits the application, as intended.

The FE is just the mdb, not an mde. FE and BE are in different directories
on the same machine.

Are there settings, preferably via code, that I can add to stop this error?


No. This is an unusual situation.

FEs usually get corrupted when you share the FE among multiple users. Yet that
doesn't sound like the situation when you stated "you tested ..." Or when opened by
another program such as Word which, once the autosave hits, unretrievably scrambles
the file.

You also shouldn't have gotten the message when exiting the MDB. Unless you are
doing some very unusual code on exiting such as, possibly, setting an opendatabase to
the FE MDB

To explain this a bit. Access momentarily sets a flag when doing updates. Access
does not check this flag when the user is in the MDB. You should only see this
message when you are opening up the MDB. So it's rather interesting that this
happened when you closed the MDB.

Tony

Nov 12 '05 #3
jb******@oldrep ublic.com (Julia Baresch) wrote in
news:50******** *************** ***@posting.goo gle.com:
We've been getting this message in our back-end since January,
with all users in the database, and have yet to find a cause.


You don't say which version of Access you're using, but it's very
common in A2K.

The first thing to check is that all your workstations (that's ALL
OF THEM, ONE HUNDRED PERCENT, not all but one or two) have stable
versions of Access and Jet. This means:

1. NOT the original version of Access 2K -- you need at least SR1a.

2. NOT Jet 4.0 before service pack 6 -- only SP6 and later are
usable at all.

And, to repeat, every single workstation needs to be the proper
version.

I've been through this kind of thing repeatedly with a number of
clients. These two steps ALWAYS eliminate the problem.

But it can recur (and does so) because workstations have a nasty
habit of reverting to earlier versions, because they get replaced
with new ones, Access gets re-installed, or some other application
downgrades Jet 4.

Most of my A2K apps now have a login routine that logs the user
name, workstation, date/time and the versions of MSACCESS.EXE and
MSJET40.dll. When corruption develops, I look at this table and know
exactly which machine needs to be fixed.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 12 '05 #4
jb******@oldrep ublic.com (Julia Baresch) wrote:
We've been getting this message in our back-end since January, with
all users in the database, and have yet to find a cause.


You've got some solutions in the postings you've reposted and from David Fenton. I
should've also added my standard blurb on this topic.

For more information on corruption including possible causes, determining the
offending PC, retrieving your data, links, official MS KB articles and a list of
vendors who state they can fix corruption see the Microsoft Access Corruption FAQ at
http://www.granite.ab.ca/access/corruptmdbs.htm

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Nov 12 '05 #5
"David W. Fenton" <dX********@bwa y.net.invalid> wrote in message
Most of my A2K apps now have a login routine that logs the user
name, workstation, date/time and the versions of MSACCESS.EXE and
MSJET40.dll. When corruption develops, I look at this table and know
exactly which machine needs to be fixed.


How do you determine the Access version and Jet versions via code? Or
are you merely getting the file dates of msaccess.exe & msjet40.dll?
Also, how would you get the MDAC version?
Thanks,
Fred Zuckerman
San Diego, CA, USA
Nov 12 '05 #6
On 5 May 2004 19:07:10 -0700, zu********@sbcg lobal.net (Fred Zuckerman) wrote:
"David W. Fenton" <dX********@bwa y.net.invalid> wrote in message
Most of my A2K apps now have a login routine that logs the user
name, workstation, date/time and the versions of MSACCESS.EXE and
MSJET40.dll. When corruption develops, I look at this table and know
exactly which machine needs to be fixed.


How do you determine the Access version and Jet versions via code? Or
are you merely getting the file dates of msaccess.exe & msjet40.dll?
Also, how would you get the MDAC version?
Thanks,
Fred Zuckerman
San Diego, CA, USA


This might help.
Posted by Chuck Grimsby (15/4/2001)

You have to use a series of API calls to do this. Please note, I'm
using a slightly modified version of VS_FIXEDFILEINF O that someone
showed me which can get around using dwLowWord and dwHighWord.

Private Declare Function GetFileVersionI nfo _
Lib "Version.dl l" _
Alias "GetFileVersion InfoA" _
(ByVal lptstrFilename As String, _
ByVal dwhandle As Long, _
ByVal dwlen As Long, _
lpData As Any) _
As Long

Private Declare Function GetFileVersionI nfoSize _
Lib "Version.dl l" _
Alias "GetFileVersion InfoSizeA" _
(ByVal lptstrFilename As String, _
lpdwHandle As Long) As Long

Private Declare Function VerQueryValue _
Lib "Version.dl l" _
Alias "VerQueryValueA " _
(pBlock As Any, _
ByVal lpSubBlock As String, _
lpBuffer As Any, _
puLen As Long) _
As Long

Private Declare Sub CopyMem _
Lib "kernel32" _
Alias "RtlMoveMem ory" _
(Destination As Any, _
Source As Any, _
ByVal Length As Long)

Private Type VS_FIXEDFILEINF O
dwSignature As Long
dwStrucVersionl As Integer
dwStrucVersionh As Integer
dwFileVersionMS l As Integer
dwFileVersionMS h As Integer
dwFileVersionLS l As Integer
dwFileVersionLS h As Integer
dwProductVersio nMSl As Integer
dwProductVersio nMSh As Integer
dwProductVersio nLSl As Integer
dwProductVersio nLSh As Integer
dwFileFlagsMask As Long
dwFileFlags As Long
dwFileOS As Long
dwFileType As Long
dwFileSubtype As Long
dwFileDateMS As Long
dwFileDateLS As Long
End Type

Public Function GetFileVersion( strFileName As String) As String
Dim lngReturn As Long
Dim Buffer() As Byte
Dim BufferLength As Long
Dim lpBuffer As Long
Dim FileInfo As VS_FIXEDFILEINF O
Dim puLen As Long
Dim sBlock As String

BufferLength = GetFileVersionI nfoSize(strFile Name, _
lngReturn)
ReDim Buffer(BufferLe ngth)

Call GetFileVersionI nfo(strFileName , _
0&, _
BufferLength, _
Buffer(0))

Call VerQueryValue(B uffer(0), _
"\", _
lpBuffer, _
puLen)

Call CopyMem(FileInf o, _
ByVal lpBuffer, _
Len(FileInfo))

GetFileVersion = Format$(FileInf o.dwFileVersion MSh) & _
"." & _
Format$(FileInf o.dwFileVersion MSl, "00") & _
"."

If FileInfo.dwFile VersionLSh > 0 Then
GetFileVersion = FileVer & _
Format$(FileInf o.dwFileVersion LSh, "00") & _
Format$(FileInf o.dwFileVersion LSl, "00")
Else
GetFileVersion = FileVer & _
Format$(FileInf o.dwFileVersion LSl, "0000")
End If
End Function
Wayne Gillespie
Gosford NSW Australia
Nov 12 '05 #7
zu********@sbcg lobal.net (Fred Zuckerman) wrote in
news:2f******** *************** ***@posting.goo gle.com:
"David W. Fenton" <dX********@bwa y.net.invalid> wrote in message
Most of my A2K apps now have a login routine that logs the user
name, workstation, date/time and the versions of MSACCESS.EXE and
MSJET40.dll. When corruption develops, I look at this table and
know exactly which machine needs to be fixed.
How do you determine the Access version and Jet versions via code?
Or are you merely getting the file dates of msaccess.exe &
msjet40.dll?


Well, I've been thinking about packaging up my log table and the
functions I use for this into a sample app posted on my website.
Anyone interested? It would be a good way for me to avoid my
assigned tasks for the day today.

Hint, hint. ;)
Also, how would you get the MDAC version?


Why would the MDAC version matter in an Access app?

I don't use MDAC, since ADO (and everything else in MDAC) is
irrelevant to my work, so I really don't know the answer.

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

On Wed, 05 May 2004 04:48:13 GMT, Tony Toews <tt****@teluspl anet.net>
wrote in comp.databases. ms-access:
So it's rather interesting that this happened when you closed the MDB.


'compact on close' = true

Peter Miller
_______________ _______________ _______________ _______________
PK Solutions -- Data Recovery for Microsoft Access/Jet/SQL
Free quotes, Guaranteed lowest prices and best results
www.pksolutions.com 1.866.FILE.FIX 1.760.476.9051
Nov 12 '05 #9
Peter Miller <pm*****@pksolu tions.com> wrote:
So it's rather interesting that this happened when you closed the MDB.


'compact on close' = true


Ah, interesting. I don't recall seeing this anywhere before. Any idea on the how
this causes corruptions?

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Nov 12 '05 #10

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

Similar topics

3
6239
by: Noah | last post by:
How does Image.putdata() work? I am using PIL 1.1.3. This simple script throws an exception on putdata(): import Image width = 10 height = 10 im = Image.new ("RGB", (width, height)) L = list(im.getdata()) k = 0 for y in range (height):
7
26795
by: qbsu21th | last post by:
Dear Sir/Madam, I'm writing a small VB6.0 and Access 2002 application in XP OS. I selected the data control property RecordSource, I got the "Unrecognized database format 'xxx/xx/*.mdb' " error. when run the application and double selected the *.mdb database, I got the same error. Why? I did converted the database file to access 2002. did i make any mistake when setup the reference or component? can anyone give a help as soon as...
7
2996
by: timmso | last post by:
I'm using Ado.net in an asp.net project with an Access backend. Whenever I try to do a simple Select or Update, I inevitably see the error "Unrecognized database format". I'm using Access 2000. Here is some code for an aspx page: Sub Page_Load(Source As Object, E As EventArgs) Dim strConnection As String = "Provider=Microsoft.Jet.OleDb.4.0;" & _ "data source=D:\Data\Codelib\codelib.mdb;"
1
6209
by: Trygve Lorentzen | last post by:
Hi, my webservice is running on Win2000 SP4, IIS 5.0 fully patched, connecting to a MySQL database and mainly returning Typed DataSet's from webmethods. After running for a while, generally a few days, the webservice stops responding and the .NET windows app client fails with no informative error message. When I try to run any webmethod from the webservice locally in the browser I first get a "This page cannot be display IE error...
1
2176
by: Rabbit | last post by:
Can anyone tell me why my web developed in .net 2.0, using Access database (.mdb). working fine at my development machines, but when I deploy it onto new Windows Server 2003, the web returns following error: 'Unrecognized database format 'c:\Inetpub\wwwroot\myapp\app_data\mydata.mdb' I was thinking .Net framework's OleDB library already know this access db format, I have even tried installing MDAC driver, still not working. Keith
9
3852
by: Wayne Smith | last post by:
I've come up against a major headache that I can't seem to find a solution for but I'm sure there must be a workaround and I would really be grateful of any help. I'm currently building a web site for a small club I belong to and one of the features I would like to include is the ability to allow users to upload image files. unfortunately the servers web root www folder only allows READ and EXECUTE permissions, which makes it...
6
22183
by: James12345 | last post by:
i have created a database for our advisors to log their call types. It is being run on about 10 different machines. Every couple of weeks, when someone tries to open it, the error Unrecognized database format <filename>. (Error 3343) appears. It cannot be repaired as it doesn't seem to recognise it as an MDB file. Can anyone tell me: 1) how do i stop this from happening 2)how can i repair the file, or at least recover the data to insert into a...
1
15357
debasisdas
by: debasisdas | last post by:
This is a sample code for taking backup and restore of access database Dim DBTempSource As Database Dim DBTempDestination As Database Dim RecTempSource As Recordset Dim RecTempDestination As Recordset Sub MBackup()
6
9014
by: MISASIA | last post by:
I really hope someone can help me... My office is using a Menu which running VB. There got many button in that Menu and one of the button which name as "GMR" hit error. Its prompt a message box "Run time error 3343 : Unrecognized database format \\sunsrv2\GMR\Database\GMR.mdb.". I check the path given and the file GMR.mdb is there. I not sure what is the problem since I don't have VB knowledge. It is a VB coding problem? But I didn't modify...
0
9865
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, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9708
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10932
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9446
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, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7851
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7025
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5694
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5881
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
3140
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.