Database corruption Issue

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • NeoPa
    Recognized Expert Moderator MVP
    • Oct 2006
    • 32656

    #16
    Originally posted by mmccarthy
    I agree you are probably right. However as this is an issue of corruption and I wasn't 100% sure I didn't see any harm in suggesting the precaution.
    I can't argue with that (rare I know). Just trying to clarify though.
    My second point to the OP was the important part in that post though.

    Comment

    • missinglinq
      Recognized Expert Specialist
      • Nov 2006
      • 3533

      #17
      I've never had much experience with corruption but two thoughts came to me reading these exchanges here. The first is that all users need to be made aware of the problem, if they aren't already aware, and warned to exit the database in the approved manner. The second is concerning who is the "culprit" here. Since the db had been running smoothly for two years and then suddenly started corrupting, maybe a look should be taken at which new users came on board recently ! Oh, a third thought! They come so seldom, I like to grab them! The database hasn't grown so much that it's reaching the 2 gigabit limit , has it? I seem to remember that this will cause an increase in incidents of corruption.

      Comment

      • Killer42
        Recognized Expert Expert
        • Oct 2006
        • 8429

        #18
        Originally posted by missinglinq
        I've never had much experience with corruption but two thoughts came to me reading these exchanges here. The first is that all users need to be made aware of the problem, if they aren't already aware, and warned to exit the database in the approved manner. The second is concerning who is the "culprit" here. Since the db had been running smoothly for two years and then suddenly started corrupting, maybe a look should be taken at which new users came on board recently ! Oh, a third thought! They come so seldom, I like to grab them! The database hasn't grown so much that it's reaching the 2 gigabit limit , has it? I seem to remember that this will cause an increase in incidents of corruption.
        Good points. Especially about cehcking who might have started - I always try to watch for suspicious timing at work. Oh look, this program started crashing the very day that new guy changed it. What a coincidence! :D

        Comment

        • ADezii
          Recognized Expert Expert
          • Apr 2006
          • 8834

          #19
          Originally posted by hshah
          Hello All,

          I have created a database in A2K. It was working fine for past 2 years.

          All of the sudden it start corrupting. When I am testing with these users on the test database for at least 2 hours I do not get any error or corruption but as soon as I start working with other databases these "VERY SMART" users keep corrupting the database and funny thing is they don’t remember what they have done last.

          Does anyone know how to find out who is messing with my database?

          I got reply from "mmccarthy" . to open a hidden form and run "Application.Qu it acQuitSaveAll" on form "Unload" event. Still they are able to do the damage.

          I am desperate to get some help on this issue.

          Thanks
          I am making the assumption that you have a Security System established on the Database with individual Log-Ins. If you don't, well, I just wasted 45 minutes of my time (just kidding). What I do in the case of suspect Users is to create an inconspicuous Log File (in this case ODBCLog.txt) buried deep in the Window's System Directory along with many other files. You can re-direct it to a Server Directory, etc. It should at a minimum pinpoint exactly who Logged in immediately prior to corruption. You can also adapt it to register when Users Log Off to pinpoint the culprit(s). Hope this is what you are looking for. Any questions, feel free to ask.
          Code:
          'You must Declare the API Function
          Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
          Code:
          Dim ReturnValue As Long, PathBuffSize As Long
          Dim PathBuff As String, intOpenFileNumber As Integer
          
          PathBuffSize = 255
          PathBuff = Space$(PathBuffSize)     'Buffer for Return Value
          
          intOpenFileNumber = FreeFile()      'Next available File#
          
          'The Windows System Directory will be returned in PathBuff parameter
          ReturnValue = GetSystemDirectory(PathBuff, PathBuffSize)
          
          'C++ Strings returned from API calls usually have a Null Terminating Zero at
          'the end - it must be removed.
          Open Left(PathBuff, InStr(PathBuff, Chr(0)) - 1) & "\ODBCLog.txt" For Append As #1
          Print #intOpenFileNumber, CurrentUser; " logged off at " & Time() & " on " & Format$(Now(), "ddd, dd/mm/yyyy")
          
          Close #intOpenFileNumber
          OUTPUT: C:\Windows\Syst em32\ODBCLog.tx t
          Code:
          Admin logged on at 7:26:26 PM on Mon, 12/03/2007
          Admin logged off at 7:46:51 PM on Mon, 12/03/2007

          Comment

          • hshah
            New Member
            • Mar 2007
            • 10

            #20
            Thanks All,

            Sorry for tuning late.

            Adezii,
            I am using .mdw file for the database.
            Does your code help to find out when they close the database or when they logout of the server folder?

            Missingling, Killer42
            I have send all the users an email with complete instruction how to "Log out" with the warning of tracking information will be forwarded to VP of IT.

            NeoPa,
            I have created an tracking for data change. So I can link users with their changes. For me if "DataChange " table is OK. Than there is no data corruption. It works fine till last month.

            Mary,
            I am checking all the users with their login and logout time.

            Thanks all

            Comment

            • hshah
              New Member
              • Mar 2007
              • 10

              #21
              Mary,

              I am about to give up. Friday it happens again, twice.

              I found out two of the users are using WindowsXP and rest are working on Windows2000 as OS. Does this create an issue? All are using Access2000.

              Also is there a way to find out if any recordsets are open or not before Application.qui t

              please please help....

              Comment

              • MMcCarthy
                Recognized Expert MVP
                • Aug 2006
                • 14387

                #22
                Originally posted by hshah
                Mary,

                I am about to give up. Friday it happens again, twice.

                I found out two of the users are using WindowsXP and rest are working on Windows2000 as OS. Does this create an issue? All are using Access2000.

                Also is there a way to find out if any recordsets are open or not before Application.qui t

                please please help....
                If each machine has a different installation of Access go around to each machine and make sure the Default Record Locking is set on each individual machine to Edited Record.

                The operating systems shouldn't make any difference.

                The only way to check open recordsets would be to see who is on the database. This is done via the ldb file but I'm afraid this is not my area of expertise. One of the others may be able to help.

                Just one other thing. Did you recreate the file after corruption by importing everything into a new file. The reason I asked is because in my experience it can be difficult sometimes to identify all corrupt records and only by importing them to a new database can this be identified.

                Mary

                Comment

                Working...