Database corruption Issue

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • hshah
    New Member
    • Mar 2007
    • 10

    Database corruption Issue

    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
  • Rabbit
    Recognized Expert MVP
    • Jan 2007
    • 12517

    #2
    The only way to keep track is to create a log-in for the database either through a workgroup or through your own programming and to create a log of what the users are doing.

    Note that this is not entirely foolproof as it is far too easy to get around these measures for those who know how.

    Comment

    • hshah
      New Member
      • Mar 2007
      • 10

      #3
      I am using workgroup file also I am also capturing all the data modification. Users can view only custom menu. Title bar is not visible. BE database is on server which is get corrupted.

      Thanks

      Comment

      • Rabbit
        Recognized Expert MVP
        • Jan 2007
        • 12517

        #4
        The only thing you can do is to pore through the log and inspect each item scrupulously to see what action could be causing the damage and who's doing it. I doubt there's a .Corrupt flag.

        Comment

        • MMcCarthy
          Recognized Expert MVP
          • Aug 2006
          • 14387

          #5
          Check the Options - Advanced and make sure the Default Record locking is set to Edited Record and the Open databases using Record Level locking box is ticked. Do this in both the backend and frontend to ensure integrity.

          Mary

          Comment

          • hshah
            New Member
            • Mar 2007
            • 10

            #6
            Mary,

            I checked both database and both have default record locking='Edited ' and Record level locking box = 'Checked'.

            Thanks

            Comment

            • MMcCarthy
              Recognized Expert MVP
              • Aug 2006
              • 14387

              #7
              In that case the problem as you've previously stated is most likely caused by illegal close downs. Create a login/logout routine. When a user logs in insert a record into the table showing user, timestamp and "Login". Assuming you have an exit button then add a piece of code to insert into the table the user, timestamp and "Logout". This way you will be able to see who appears to have logged in but not logged out. They have obviously logged out illegally.

              Mary

              Comment

              • hshah
                New Member
                • Mar 2007
                • 10

                #8
                Mary,

                Thanks again.

                I did that. On startup of the database "Main Form" opens. On load event I am pulling Username, LoginTime and LoginDate.

                On the same form I am adding "EXIT" button. On click of that button first it pull username, logoutdate, logouttime, save all the data and than "EXIT" application. If user do not click on the button Logout info will not be inserted.

                Tested and Works great.

                BUT still I have to do the copy and repair the database and relink all the users to the new database. Once database is correpted server is not allowing me to delete .ldb file. Is there a solution for that.

                As always Thanks a lot.

                Comment

                • MMcCarthy
                  Recognized Expert MVP
                  • Aug 2006
                  • 14387

                  #9
                  Originally posted by hshah
                  Mary,

                  Thanks again.

                  I did that. On startup of the database "Main Form" opens. On load event I am pulling Username, LoginTime and LoginDate.

                  On the same form I am adding "EXIT" button. On click of that button first it pull username, logoutdate, logouttime, save all the data and than "EXIT" application. If user do not click on the button Logout info will not be inserted.

                  Tested and Works great.

                  BUT still I have to do the copy and repair the database and relink all the users to the new database. Once database is correpted server is not allowing me to delete .ldb file. Is there a solution for that.

                  As always Thanks a lot.
                  I'm going to point a couple of other experts in this direction who may have more experience with scripting ldb files.

                  Mary

                  Comment

                  • Killer42
                    Recognized Expert Expert
                    • Oct 2006
                    • 8429

                    #10
                    Originally posted by mmccarthy
                    I'm going to point a couple of other experts in this direction who may have more experience with scripting ldb files.
                    The whole corruption thing is over my head, but there is one point made in this thread with which I take issue.

                    Mary, you have suggested setting the default behaviour on both the front-end and back-end databases. But I seem to recall that in a fairly recent thread (within the past couple of months, at least) we established that setting these options sets them for the user/PC, and not for the specific database.

                    If this is the case (and I'm not saying it definitely is, but we need to be certain) then the OP may not have put in place all of the precautions/safeguards that they thought.

                    Comment

                    • nico5038
                      Recognized Expert Specialist
                      • Nov 2006
                      • 3080

                      #11
                      As long as an Access session is active the .ldb can't be deleted. Even when there's no database visible, an Access session can be running. You'll need to check the running processes (Ctrl+Alt+Del -> Task Manager) and kill the MSAccess.exe.

                      There's however in general no need to remove the .ldb as it will only hold an active user. Looks to me that you're triggering multiple Access sessions, often caused by starting the same form twice.
                      I would also check upon the form's that can cause your corruption. I've had similar corruptions when a bound field was deleted from the recordset of the form, but not from the form. Nasty to find, but worth a try.

                      Nic;o)

                      Comment

                      • MMcCarthy
                        Recognized Expert MVP
                        • Aug 2006
                        • 14387

                        #12
                        Originally posted by Killer42
                        The whole corruption thing is over my head, but there is one point made in this thread with which I take issue.

                        Mary, you have suggested setting the default behaviour on both the front-end and back-end databases. But I seem to recall that in a fairly recent thread (within the past couple of months, at least) we established that setting these options sets them for the user/PC, and not for the specific database.

                        If this is the case (and I'm not saying it definitely is, but we need to be certain) then the OP may not have put in place all of the precautions/safeguards that they thought.
                        Problem is that the backend can be anywhere on the network and I'm not sure what instance of Access it will use. It's just a precaution.

                        Mary

                        Comment

                        • NeoPa
                          Recognized Expert Moderator MVP
                          • Oct 2006
                          • 32633

                          #13
                          I don't think the BE uses separate settings as it is controlled by the FE.
                          HShah, you mentioned implementing the logging system but not checking it ever. You do realise, I presume, that this is a tool to discover where the problem is coming from, rather than a fix to the problem per se?

                          Comment

                          • MMcCarthy
                            Recognized Expert MVP
                            • Aug 2006
                            • 14387

                            #14
                            Originally posted by NeoPa
                            I don't think the BE uses separate settings as it is controlled by the FE.
                            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.

                            Comment

                            • Killer42
                              Recognized Expert Expert
                              • Oct 2006
                              • 8429

                              #15
                              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 agree that the precautions are a good idea. My point was that perhaps they have only been applied to the OP, and not the users who are apparently causing the corruption.

                              Would like to get this point cleared up, if possible.

                              Comment

                              Working...