Avatar billede Morten Nybegynder
29. september 2003 - 10:18 Der er 12 kommentarer og
2 løsninger

Flere-bruger system

Hej

Jeg har lavet et, synes jeg selv, rigtig godt bestillingssystem med kundebase m.m.

Nu er der selvfølelig kommet krav om at dette skal kunne bruges på flere arbejdsstationer samtidigt og det giver mig lidt kvaler.

Jeg er bekendt med J.Walkenbach´s funktion med at hente fra lukkede filer, men ved ikke om det i mit tilfælde er det bedste, derfor vil jeg hører om I havde nogle ideer og forslag.

Landet ligger sådan at jeg har en fil der hedder Lokal.xls som indeholder diverse numre (tilbudsnr., ordrenr.), diverse standard oplysninger o.m.a. disse ønsker jeg placeret centralt så alle brugere trækker på samme data og altid får det nyest tilbudsnr. + 1 osv.

Alle data hentes og skrives fra VBA-userforms.

Ville det være smart at lave en lokal fil al´s LokalLokal.xls som blot linker til Lokal.xls? Mht numre (tilbud, ordre etc.) er det ikke et problem - men hvad med kundebasen - den udvides jo hele tiden - linker jeg så bare hele arket til det andet ark eller???

Håber på nogle gode forslag - ønskes mere info så spørg løs.
Avatar billede jkrons Professor
29. september 2003 - 10:31 #1
Hvis du skal lave et egentligt flerbruger system, vil jeg foreslå, at du laver det i et databaseprogram i stedet for i Excel. Jeg tror problemerne med at "holde styr" på brugerne, "hvem opdaterer hvad hvornår", "hvilket nummer er det seneste", osv., vil blive for vanskelige atr holde styr på.
Avatar billede Morten Nybegynder
29. september 2003 - 10:40 #2
Havde jeg også overvejet - mener nu ikke det er numren der er det store problem - det er jo blot at ændre så snart en bruger opretter et nyt tilbud så hæves numret og dette er nu det seneste... hmmmmmm....

Vil lige vente og se om andre har nogle forslag - og begynder så lige at rode lidt med access som database... lyder jo egentlig også mere logisk... var bare så dejligt nemt at holde det hele i excel (tror jeg nok)...
Avatar billede Morten Nybegynder
29. september 2003 - 10:45 #3
Et andet alternativ var jo også at åbne Lokal.xls "et øjeblik" mens brugeren hentede data for så at lukke igen ???
Avatar billede bak Forsker
29. september 2003 - 11:09 #4
For nu ikke at du skal lave for meget om, ville mit forslag nok være at placere kundedatabase samt hvad du har i Lokal.xls i en access-database og så læse/skrive i den fra Excel. På den måde er det muligt at flere bruger den på en gang og du kan beholde alt resten i Excel
Avatar billede bak Forsker
29. september 2003 - 11:11 #5
Jeg glemte lige at skrive, at hvis du gør som jeg skrev, er det ikke nødvendig med access-licenser, da det hele foregår med odbc-kald.
Avatar billede Morten Nybegynder
29. september 2003 - 11:18 #6
Okay - er jeg også selv kommet frem til - MEN...

Jeg kan sagtens linke mit ark til databasen (jeg vil helst bruge det ark jeg har nu for ikke at skulle til at ændre en masse VBA kode) og hente dataerne ind det fungerer perfekt - men hvordan skriver jeg lige data tilbage til Access - har ledt lidt her på eksperten - men så vidt jeg lige kan se går alle spørgsmål kun på at hente data fra Access - og ikke skrive tilbage til access..

Det med licenserne er jo bare perfekt - betyder det også at Access faktisk slet ikke behøver være installaeret? (det gør det vel?!)
Avatar billede bak Forsker
29. september 2003 - 11:26 #7
Yes, ingen licenser :-)

For at skrive til access, skal du bruge lidt kode, men det er faktisk nemt.
Et godt sted at starte er http://www.erlandsendata.no/english/
Se under ADO/DAO.
Avatar billede Morten Nybegynder
29. september 2003 - 11:30 #8
Kan du kort forklare hvad ADO og DAO er... og så venligst smide et svar så du og Jkrons kan få jeres velfortjente points
Avatar billede bak Forsker
29. september 2003 - 11:58 #9
Det er bare to dataudvekslingsformer, med lidt forskellige kommandoer , og ADO er den nyeste og hurtigste.
Avatar billede Morten Nybegynder
29. september 2003 - 12:04 #10
Bak - jeg har et par tillægsspørgsmål - er det okay?

Hvis jeg skal opdaterer en post - som jeg har ændret i excel - så skal jeg vel ikke overfører alle data fra excel til access - men kan vel nøjes med at opdaterer posten - kan du evt. give et eksemple på det...?
Avatar billede bak Forsker
29. september 2003 - 12:16 #11
Ja, du får lige et eksempel, der ikke er så specifikt, men det viser at man kan indsætte / opdatere og slette en record i access fra excel



Public Sub InsertUpdateDelete()

    Dim objCommand As ADODB.Command
    Dim rsData As ADODB.Recordset
    Dim lRecordsAffected As Long
    Dim lKey As Long
    Dim szConnect As String
   
    On Error GoTo ErrorHandler
   
    ' Create the connection string.
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=C:\Files\Northwind.mdb;" & _
                "Mode=Share Exclusive"
   
    ' Create the Command object we'll use for all three queries.
    Set objCommand = New ADODB.Command
    objCommand.ActiveConnection = szConnect
   
    '**** INSERT a new record into the database **************
    ' Load the SQL string into the Command object.
    objCommand.CommandText = "INSERT INTO Shippers(CompanyName, Phone) " & _
                            "VALUES('Air Carriers', '(205) 555-1212');"
    ' Execute the SQL statement.
    objCommand.Execute Recordsaffected:=lRecordsAffected, _
                      Options:=adCmdText Or adExecuteNoRecords
    ' Check for errors. Only one record should have been affected.
    If lRecordsAffected <> 1 Then Err.Raise Number:=vbObjectError + 1024, _
          Description:="Error executing INSERT statement."
       
    ' Retrieve the primary key generated for our new record.
    objCommand.CommandText = "SELECT @@IDENTITY;"
    Set rsData = objCommand.Execute(Options:=adCmdText)
    ' Check for errors. The recordset should contain data.
    If rsData.EOF Then Err.Raise Number:=vbObjectError + 1024, _
          Description:="Error retrieving primary key value."
    ' Store the primary key value for later use.
    lKey = rsData.Fields(0).Value
    rsData.Close
   
    '**** UPDATE the record we just created ******************
    ' Load the SQL string into the Command object.
    objCommand.CommandText = "UPDATE Shippers " & _
                            "SET Phone='(206) 546-0086' " & _
                            "WHERE ShipperID=" & CStr(lKey) & ";"
    ' Execute the SQL statement.
    objCommand.Execute Recordsaffected:=lRecordsAffected, _
                      Options:=adCmdText Or adExecuteNoRecords
    ' Check for errors. Only one record should have been affected.
    If lRecordsAffected <> 1 Then Err.Raise Number:=vbObjectError + 1024, _
          Description:="Error executing UPDATE statement."
   
    '**** DELETE our record from the database ****************
    ' Load the SQL string into the Command object.
    objCommand.CommandText = "DELETE FROM Shippers " & _
                            "WHERE ShipperID = " & CStr(lKey) & ";"
    ' Execute the SQL statement.
    objCommand.Execute Recordsaffected:=lRecordsAffected, _
                      Options:=adCmdText Or adExecuteNoRecords
    ' Check for errors. Only one record should have been affected.
    If lRecordsAffected <> 1 Then Err.Raise Number:=vbObjectError + 1024, _
        Description:="Error executing DELETE statement."
   
ErrorExit:

    ' Destroy our ADO objects.
    Set objCommand = Nothing
    Set rsData = Nothing
    Exit Sub
   
ErrorHandler:
    MsgBox Err.Description, vbCritical
    Resume ErrorExit
End Sub
Avatar billede Morten Nybegynder
29. september 2003 - 12:25 #12
KANON - tusind tak
Avatar billede Morten Nybegynder
29. september 2003 - 14:04 #13
HJÆLP - Hvilken reference mangler jeg når den kommer og brokker sig på linjen:

objCommand As ADODB.Command

den siger:
User defined type not defined
Avatar billede Morten Nybegynder
29. september 2003 - 14:08 #14
Rolig nu...

Fandt ud af at det var Microsoft Active X ver 2.x

Havde dog ikke den så jeg hakkede alt af med Active X og nu ville den..
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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