Avatar billede william_munny Nybegynder
22. september 2005 - 13:19 Der 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.

Så hvad skal jeg gøre ?
Avatar billede -anders- Juniormester
22. september 2005 - 13:22 #1
Hej blot et skud, er du sikker på at databasen er sat til åbning med delt adgang, du kan checkke det under indstillinger/avanceret
Avatar billede -anders- Juniormester
22. september 2005 - 13:24 #2
Ups, Funktioner/Indstillinger/Avanceret
Avatar billede william_munny Nybegynder
22. september 2005 - 13:24 #3
Default open mode er sat til "Shared"

Og

Default record locking er sat til "No locks"

Så det er vel ok?
Avatar billede -anders- Juniormester
22. september 2005 - 13:27 #4
Hmm, ja det lyder fint nok, hvad med den form du nævner, hvad gør den, er der kode på formen e.t.c
Avatar billede -anders- Juniormester
22. september 2005 - 13:31 #5
Virker det hvis du feks. sætter en anden form til at være startop formen??
Avatar billede william_munny Nybegynder
22. september 2005 - 13:32 #6
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
Avatar billede william_munny Nybegynder
22. september 2005 - 13:35 #7
Hvis jeg bruger en anden form kan den sagtens starte op :-(
Avatar billede william_munny Nybegynder
22. september 2005 - 13:39 #8
De to kode events jeg postede har jeg prøvet at ukommentere og det virker heller ikke.
Avatar billede -anders- Juniormester
22. september 2005 - 13:41 #9
Okay, så må det være den sædvanlige startform der driller, hvad ligger der af kode på formen
Avatar billede william_munny Nybegynder
22. september 2005 - 13:43 #10
Option Compare Database

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
   
    DoCmd.Echo False, ""
    Form_QCDB.btnOpenExportForm.Enabled = False
   
    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
   
    getChartTitle = Me.comboProject.column(1) & " ; " & Me.ComboAnalysis.column(1) & " ( " & Me.ComboAnalysisParameter.column(1) & " ) " & vbchr & "QC: " & Me.ComboQC.column(1) & " (Standard: " & Me.ComboQC.column(2) & "): " & Me.ComboQC.column(3)
   
End Function



Private Sub Form_Load()
' Code Header inserted by the Procedure Header Add-In
'=============================================================
' Form_QCDB.Form_Load
'-------------------------------------------------------------
' 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 '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 Form_Open(Cancel As Integer)
' Code Header inserted by the Procedure Header Add-In
'=============================================================
' Form_QCDB.Form_Open
'-------------------------------------------------------------
' Purpose
' Author : Casper Rafn Møller, 09-16-2004
' Notes :
'-------------------------------------------------------------
' Parameters
'-----------
' Cancel (Integer)
'-------------------------------------------------------------
' Returns:
'-------------------------------------------------------------
' Revision History
'-------------------------------------------------------------
' 09-16-2004 CRM:
'=============================================================
' End Code Header block
    'RunCommand acCmdSizeToFitForm
    DoCmd.Maximize
End Sub

Private Sub btnOpenExportForm_Click()
On Error GoTo Err_Command41_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "frmExportGraph"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command41_Click:
    Exit Sub

Err_Command41_Click:
    MsgBox err.Description
    Resume Exit_Command41_Click
End Sub
Avatar billede -anders- Juniormester
22. september 2005 - 13:43 #11
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
Avatar billede -anders- Juniormester
22. september 2005 - 13:44 #12
Elles er jeg desværre blank :(o
Avatar billede william_munny Nybegynder
22. september 2005 - 13:44 #13
Men det er kun de to events

Private Sub Form_Open(Cancel As Integer)
Private Sub Form_Load()

Som bliver kørt.... tror jeg
Avatar billede william_munny Nybegynder
22. september 2005 - 13:45 #14
vi snakker over timers arbejde her, det kommer til at ødelægge min dag. :-( men tak for forsøget.
Avatar billede -anders- Juniormester
22. september 2005 - 13:47 #15
Selv tak, og held og lykke med det
Avatar billede Slettet bruger
22. september 2005 - 13:53 #16
Kan du starte "startformen" fra en anden form og så bruge den som startform!!!

eks. Lav en forside/billede hvad ved jeg, sæt timeren til et par sekunder og så starte din oprindelige startform op?~)
Avatar billede william_munny Nybegynder
22. september 2005 - 13:56 #17
Jo det er en mulighed men jeg prøver lige at lave en ny "version" af min start form, vender lige tilbage.
Avatar billede claesdamlund Nybegynder
22. september 2005 - 13:57 #18
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
Avatar billede Slettet bruger
22. september 2005 - 13:59 #19
Jeg er nød til at løbe, kigger forbi i morgen!~)

Held og lykke....
Avatar billede william_munny Nybegynder
22. september 2005 - 14:01 #20
Prøvede lige at fjerne en subform fra min "start form" herefter virker det. hmmm
Avatar billede -anders- Juniormester
22. september 2005 - 14:08 #21
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
Avatar billede -anders- Juniormester
22. september 2005 - 14:11 #22
Mente åbne databaser med låsning på postniveu, er der flueben her, så prøv at fjerne det
Avatar billede william_munny Nybegynder
22. september 2005 - 14:13 #23
Det kan man godt. Hvad skal jeg kigge efter under åbningstilstanden ?
Avatar billede william_munny Nybegynder
22. september 2005 - 14:14 #24
der er ikke noget flueben der.
Avatar billede -anders- Juniormester
22. september 2005 - 14:15 #25
Funktioner/Indstillinger/Avanceret, prøv at fjerne fluebenet i "åben databaser med låsning på postniveu"
Avatar billede -anders- Juniormester
22. september 2005 - 14:17 #26
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??
Avatar billede claesdamlund Nybegynder
22. september 2005 - 14:20 #27
Har du ændret i din opstartsform eller den tilhørende subform, siden sidste version, som virkede?
Avatar billede william_munny Nybegynder
22. september 2005 - 14:22 #28
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.
Avatar billede william_munny Nybegynder
22. september 2005 - 14:23 #29
Jeg har ændret en del siden sidst.
Avatar billede william_munny Nybegynder
22. september 2005 - 14:30 #30
Hvis jeg fjerne "allow edit" ,"allow additions" osv på alle mine subforms har jeg stadig det samme problem.
Avatar billede -anders- Juniormester
22. september 2005 - 14:36 #31
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
Avatar billede william_munny Nybegynder
22. september 2005 - 14:50 #32
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 :-)
Avatar billede william_munny Nybegynder
22. september 2005 - 14:59 #33
Så tak for hjælpen alle sammen, og gider du at smide et svar claesdamlund for din løsning.
Avatar billede claesdamlund Nybegynder
22. september 2005 - 17:43 #34
Som sagt Access kan være lidt forudsigelig ind imellem - men det er sikkert bare en feature :o)
Håber det fortsætter med at virke!
Avatar billede claesdamlund Nybegynder
22. september 2005 - 21:32 #35
forudsigelig = uforudsigelig!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester