22. september 2005 - 13:19Der er
34 kommentarer og 1 løsning
Problemer med mulituser access database
Hej Eksperter, Jeg i lang tid udviklet på en Access database som er ved at blive lidt omfattende (mange forms,queries osv.). Sagen er at jeg nu skal have udgivet den sidste nye version. Som bliver lagt på vore filserver, hvorefter brugerne tilgår den via et direkte link til filen på vores intraweb. Dette har hidtil virket fint men det ser ud til at den sidste opdatering har påvirket databasen i en "forkert" grad. Det er nemlig kun muligt for én bruger at åbne filen. Alle andre får en besked om at filen er "The database has been placed in a state by user 'Admin' on machine 'xxx' that prevents it from being opened or locked."
Så hvad kan være årsagen til det? Jeg kan fortælle at når man starter op bliver der der automatisk åbnet en form, hvis jeg undlader at gøre det så virker. Så jeg går udfra at der er et eller andet den form gør som låser DB'en. Har prøvet at fjerne formens load event men det hjælper et fedt.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Der er masser af kode på formen. Når den starter op logger den brugeren i en tabel (her troede jeg faktisk problemt lå)
Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize End Sub
Private Sub Form_Load() Form_subQC.Visible = False 'sets the subQC form to be invisible Form_subQC.frameSelectData.value = 2 Form_subQC.CheckZoom.value = 0 Me.comboProject.value = "" Me.comboProject.SetFocus Me.comboProject.Dropdown Generel.writeLog End Sub
Private Sub btnNewValues_Click() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.btnNewValues_Click '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block DoCmd.OpenForm "newComboForm", acNormal Form_NewComboForm.SetFocus End Sub
Private Sub cmdQuit_Click() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.cmdQuit_Click '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block DoCmd.Quit End Sub
Private Sub ComboAnalysis_GotFocus() 'Refresh the combobox with new values Me.ComboAnalysis.RowSource = "SELECT [Analysis].[analysisID]," & _ "[Analysis].[analysisName] as Analysis , [Analysis].[protocolName] as Protocol " & _ "FROM Analysis WHERE ProjectID = " & comboProject.value End Sub
Private Sub ComboAnalysisParameter_GotFocus() 'Refresh the combobox with new values Me.ComboAnalysisParameter.RowSource = "SELECT [AnalysisParameter].[analysisParameterID], " & _ "[AnalysisParameter].[analysisParameter] FROM AnalysisParameter WHERE " & _ "analysisID = " & ComboAnalysis.value End Sub Private Sub ComboQC_GotFocus() Me.ComboQC.RowSource = "SELECT QC.qcID, QC.qcName AS QC,QC.standard as Standard, Qc.site as Site FROM QC WHERE " & _ "analysisParameterID = " & ComboAnalysisParameter.value End Sub
Private Sub ComboProject_Change() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.ComboProject_Change '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block Form_subQC.Visible = False Form_QCDB.btnOpenExportForm.Enabled = False 'Selects new values for the Analysis combo box Me.ComboAnalysis.RowSource = "SELECT [Analysis].[analysisID]," & _ "[Analysis].[analysisName] as Analysis , [Analysis].[protocolName] as Protocol " & _ "FROM Analysis WHERE ProjectID = " & comboProject.value
'Drops down the Analysis box for choosing a specific Analysis Me.ComboAnalysis.value = "" Me.ComboAnalysis.SetFocus Me.ComboAnalysis.Dropdown
End Sub Private Sub ComboAnalysis_Change() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.ComboAnalysis_Change '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block
Form_subQC.Visible = False Form_QCDB.btnOpenExportForm.Enabled = False 'Selects new values for the Analysisparameter combo box Me.ComboAnalysisParameter.RowSource = "SELECT [AnalysisParameter].[analysisParameterID], " & _ "[AnalysisParameter].[analysisParameter] FROM AnalysisParameter WHERE " & _ "analysisID = " & ComboAnalysis.value
'Drops down the AnalysisProtocol box for choosing a specific protocol Me.ComboAnalysisParameter.value = "" Me.ComboAnalysisParameter.SetFocus Me.ComboAnalysisParameter.Dropdown
End Sub
Private Sub ComboAnalysisParameter_Change() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.ComboAnalysisParameter_Change '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block Form_subQC.Visible = False Form_QCDB.btnOpenExportForm.Enabled = False 'Selects new values for the QC combo box Me.ComboQC.RowSource = "SELECT QC.qcID, QC.qcName AS QC,QC.standard as Standard, Qc.site as Site FROM QC WHERE " & _ "analysisParameterID = " & ComboAnalysisParameter.value
'Drops down the version box for choosing a specific version Me.ComboQC.value = "" Me.ComboQC.SetFocus Me.ComboQC.Dropdown
End Sub
Private Sub ComboQC_Change() ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.ComboQC_Change '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block
Form_subQC.filter = "([qcID] =" & ComboQC.value & ")" 'sets filter on subform QC Form_subQC.filterOn = True Form_subQC.Visible = True Form_subQC.TabChart.value = 0 ' sets tab to first page
'Order data sheets after created date descending Form_frmCalcDataSheet.OrderBy = "created DESC" Form_frmCalcDataSheet.OrderByOn = True Form_frmDataSheet.OrderBy = "created DESC" Form_frmDataSheet.OrderByOn = True
'Set the version list on the options sheet Call Form_subQC.setVersionList(ComboQC.value)
'This sets the filter on the sub data forms Call Form_subQC.setSubFormFilter(True) Call Form_frmFilter.clearFilter 'Do average calculation etc. for selected QC Form_subQC.doCalculations ("[qcID] =" & ComboQC.value & " " & Form_subQC.getVersionFilter("AND")) Call ModCalc.calcAVGIntra("[qcID] =" & ComboQC.value & " " & Form_subQC.getVersionFilter("AND"))
DoCmd.Echo True, "" End Sub
Public Sub refreshData() Form_subQC.filter = "([qcID] =" & ComboQC.value & ")" 'sets filter on subform QC Form_subQC.filterOn = True Form_subQC.Visible = True Form_subQC.TabChart.value = 0 ' sets tab to first page
'Order data sheets after created date descending Form_frmCalcDataSheet.OrderBy = "created DESC" Form_frmCalcDataSheet.OrderByOn = True Form_frmDataSheet.OrderBy = "created DESC" Form_frmDataSheet.OrderByOn = True
'Set the version list on the options sheet Call Form_subQC.setVersionList(ComboQC.value)
'This sets the filter on the sub data forms Call Form_subQC.setSubFormFilter(True) 'Call Form_frmFilter.clearFilter 'Do average calculation etc. for selected QC Form_subQC.doCalculations ("[qcID] =" & ComboQC.value & " " & Form_subQC.getVersionFilter("AND")) 'Call ModCalc.calcAVGIntra("[qcID] =" & ComboQC.value & " " & Form_subQC.getVersionFilter("AND")) End Sub Public Function getChartTitle() As String 'Function for retrieving the chart title ' Code Header inserted by the Procedure Header Add-In '============================================================= ' Form_QCDB.getChartTitle '------------------------------------------------------------- ' Purpose ' Author : Casper Rafn Møller, 09-16-2004 ' Notes : '------------------------------------------------------------- ' Parameters '----------- ' '------------------------------------------------------------- ' Returns: '------------------------------------------------------------- ' Revision History '------------------------------------------------------------- ' 09-16-2004 CRM: '============================================================= ' End Code Header block
Nogen gange går der kuk i formstrukturen, jeg forslår at du opretter en en startform (med et andent navn), og tilpasser den så den gør det samme som den nuværende form, dette kan måske afhjæpe problemet, men er ikke sikker
Hvis den har virket fint hidtil, så prøv at oprette en ny database og importér alle elementer fra din nuværende database over i den nye. Læg den nye database ud på serveren og se hvordan den opfører sig. Access´ veje er nogen gange uransalige :o) og det burde ikke tage mere end et par minutter at lave eksperimentet
Hvis man kan skrive/ændre data i den subform, som er på din opstartsform, kan det godt være årsagen, prøv evt, at tjekke åbningstilstanden på din db igen og kig på låsning af tabeller
Okay, det er nu helt tydeligt at det er noget med en eller flere subforms på din startop form, men hvad kan jeg ikkke lige gennemskue, skrives der poster til en eller flere tabeller automatisk når din startform åbens??
Der bliver ikke skrevet noget før man har valgt nogle parametre på selve "start formen". herefet viser den min sub form som har yderligere nested to subforms. Altså 3 lag af subforms. Hvortil den har skrevet nogle beregninger udffra de valg der er blevet foretaget.
Hmm, er som sagt ved at være blank her, måske claesdamlund kan se det med andre øjne, eller måske det ligger på PC-niveu hos den enkelte bruger, eller på serveren
claesdamlund -> Jeg prøved at lave en tom database også importere alt over i den. lagt det op på vores server og nu ser det ud som om det virker. Hvorfor gjorde jeg ikke som du sagde med det samme :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.