Avatar billede cc2000 Nybegynder
26. august 2002 - 10:19 Der er 86 kommentarer og
1 løsning

Scrollbar i form

Er det muligt i en form der har 2 subforms at få de 2 scrollbars der hører til de 2 subforms at køre synkroniseret?
Altså når du rykker den ene rykker du også den anden?
Avatar billede moses Praktikant
26. august 2002 - 10:29 #1
JA da - med kode er alt muligt !!

Men, hvis du binder begge subforms sammen med hovedformen med Child/Parent, så rykker de rundt, så de viser de data, som tilhører den record, der lige vises i hovedformen.
Hvis der så er en link fra subform1 til subform2, så vil det samme kunne lade sig gøre:

Du skal blot lade subform2 være subform til subform1 og så forbinde dem med Child/Parent.
Avatar billede cc2000 Nybegynder
26. august 2002 - 10:33 #2
Og hvor sætter man så det der child/parent henne? :)
Avatar billede cc2000 Nybegynder
26. august 2002 - 10:35 #3
Lige for at du forstår mig rigtigt. Så hovedformen indeholder/viser ingen records. Subform1 er en søgeform som viser den record man har søgt efter og lige nedenunder den er subform2 som viser alle records der er tilgængelige.
Avatar billede moses Praktikant
26. august 2002 - 10:42 #4
Ok. Så er der jo ikke nogen fast dataforbindelse imellem dem.

Du kan anvende et recordset til søge formen og så sætte filter på den (søgekriterierne). Derefter kan du tage den bookmark, som din søgning gav og lægge ind på edin "total" subform, så stiller den sig på den samme record. MEN det skal være en ægte Clone:


søgeform:  Datasource = rs
så skal
total-form: Datasource = rs.clone

Og, hvis du laver en requery, så taber clonen kontakten, så du skal bruge
total-form: Datasource = rs.clone
igen.
Avatar billede cc2000 Nybegynder
26. august 2002 - 10:45 #5
Den skal ikke finde den samme record begge steder. Den skal hvis man tager den horisontale scrollbar og flytter den til venstre på total-formen så skal søgeformen også følge med derudaf.
Avatar billede moses Praktikant
26. august 2002 - 11:05 #6
Ok
Og der er de samme antal felter deruda' ?!?

Så kan det være, at du skal bruge et datagrid.

datagrid.leftcol

Viser dig nemlig den yderste venstre kolonne. Aflæser du den, kan du lægge den ind i den anden forms datagrid, så de "følges ad".
Avatar billede sjap Praktikant
26. august 2002 - 11:05 #7
Så vidt jeg lige ved, findes der ikke nogen Scrollbar-events. Dvs. det er ikke muligt at finde ud af hvad der er foretaget med scrollbaren. Derfor kan det du beskriver ikke laves.

Når det så er sagt, er muligheden måske et anderledes design af dine formularer.

Hvis placerer begge subforms på en formular og gør bredden af dem så stor som nødvendigt, så kan du bruge den nye forms scroll - og den virker på dem begge samtidigt!

Det er selvfølgeligt lidt bøvlet for nu får du forms i tre lag.
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:07 #8
Superjap... det er faktisk det jeg har i forvejen. Men felterne er så lange så jeg faktisk har scrollbars på hovedformen samt på de 2 subforms.
Avatar billede sjap Praktikant
26. august 2002 - 11:07 #9
Havde ikke set dit svar moses. Det virker som en interessant mulighed - hvis man bruger et datagrid virker mit forslag jo nærmest klodset, men også kun hvis man bruger et datagrid.  :o)
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:08 #10
moses ... jup. Samme antal felter derudaf.
Er ikke helt med på hvad du mener med det du skriver omkring datagrid?
Avatar billede sjap Praktikant
26. august 2002 - 11:09 #11
cc2000

Mit forslag går på at du gør subsubformularerne så brede på subformularen, at der ikke er scrollbars på dem - kun på subformen.
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:11 #12
superjap ... ååhhh... nu jeg med.
Vil jeg da egentlig lige prøve at kigge på om det kan lade sig gøre :)
Avatar billede moses Praktikant
26. august 2002 - 11:14 #13
Det jeg mener med samme antal felter er:

De to tabeller, som skal "følges ad" skal jo have de samme antal felter horisontalt. Det skal jo være sådan, at når du flytter visningen af den ene tabel, så f.eks. kolonne 3-7 kan ses, så skal den anden tabel også rykke sig hen, så kolonne 3-7 kan ses.

Er det ikke det du vil ?!
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:18 #14
moses ... Jo nemlig.
Avatar billede moses Praktikant
26. august 2002 - 11:18 #15
Datagrid kan du spørge om, hvad kolonnenummeret er på den venstre kolonne, der kan ses.
Hvis der er 100 kolonner og du har rullet dig hen på midten af en record, så du kun kan se kolonne 50-55, så angiver DATAGRID.LEFTCOL 50.
Det er rent visuelt !
Avatar billede moses Praktikant
26. august 2002 - 11:21 #16
Og så er det jo bare lige, at sætte den anden DATAGRID.LEFTCOL til samme kolonne nummer og vupti så står de ens.
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:22 #17
Okaaay :)
Men hvordan implementerer jeg det så?
Avatar billede moses Praktikant
26. august 2002 - 11:28 #18
Du tager en reference ind til DATAGRID, klistrer den i din form istedet for din tabel, forbinder den til din recordsource i dens properties. Og så sætter du f.eks. en timer til at holde øje med LEFTCOL fra begge DATAGRIDS. Når den ene ændrer sig siden sidste timeout, sætter du blot den anden LEFTCOL til samme nye værdi.
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:28 #19
Det ser ikke ud til at der er noget der hedder datagrid.leftcol i access?
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:33 #20
Hvad hedder den reference til DATAGRID?
Avatar billede moses Praktikant
26. august 2002 - 11:37 #21
Nej du skal åbne din form i design visning. Vælge menuen INSERT / ActiveX Control og der finde Microsoft DATAGRID ....

Så vil du have en datagrid liggende på formen, som du så kan arbejde videre med.
Avatar billede cc2000 Nybegynder
26. august 2002 - 11:38 #22
Ahhh... Takker... vil jeg prøve
Avatar billede sjap Praktikant
26. august 2002 - 12:35 #23
Jeg skrev det måske ikke helt korrekt: Excel accepterer faktisk "9:10" i formlen, men det opfattes bare forkert.

Hvis jeg i C12 skriver 01:12 bliver svaret på nedenstående "Nej"

=HVIS(C12>"1:10";"Ja";"Nej")

Hvis jeg i stedet skriver

=HVIS(C12>TIDSVÆRDI("1:10");"Ja";"Nej")

bliver svaret det korrekte "Ja"

Er funktionen anderledes hos jer?
Avatar billede sjap Praktikant
26. august 2002 - 12:36 #24
UNDSKYLD!
Forkert spørgsmål! Bare lad som om jeg ikke er her!
Avatar billede moses Praktikant
26. august 2002 - 12:43 #25
Hello Jack
I think I just downloaded the whole internet to your e-mail adress. Sorry IF it caused any problems.

Ingen årsag - men stavefejl er nu lidt nemmere at forklare sig ud af ;-)
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:06 #26
moses ... kan jeg ikke få dig til at lave en test database, hvor du laver datagrids i og får det til at virke som det skal?
Jeg er sådan rimelig meget lost.
Tror det er fordi jeg har haft weekend ;)
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:07 #27
Du kan godt få 60 point for det :)
Avatar billede moses Praktikant
26. august 2002 - 13:14 #28
Jeg har også "holdt weekend". Indrømmet - det gør lidt ondt ;-)

Det er ikke nok, at jeg laver det for dig. Du skal have controllen registreret på din PC.
Jeg ved ikke lige, hvilke programmer, der trækker Datagrid controllen med sig.

Prøv lige at gå ind i din Access, åben din form i design visning og vælg følgende menupunkt:

Insert / ActiveX Control

Der kommer en liste i alfabetisk rækkefølge. Nu skal du så bare lige finde:
"Microsoft Datagrid ...."

Hvis den ikke står der, så er den ikke registreret på din PC og det skal så først gøres, før du kan bruge den.
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:20 #29
Jeg kan godt finde microsoft datagrid og indsætte det. Men jeg kan ikke lige helt forstå opsætningen af datagriden.
Jeg vil ikke copy/paste det du laver men istedet lige gennemgå hvordan du sætter det op, da jeg ikke lige helt er med hvordan det skal gøres.
Og har lige været hjemme i pausen og set at en af mine harddiske opfører sig MEGET mærkeligt. :/
Avatar billede moses Praktikant
26. august 2002 - 13:32 #30
Den har nok også "holdt weekend"

    dim rs as ADODB.Recordset
    dim rsClone as ADODB.Recordset
    dim src as string
    dim CommandType as CommandTypeEnum
    dim myConn as ADODB.Connection


    myConn = ".........." ' Din egen connection
    src = "Table1"
    CommandType = adCmdTable
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic
    rs.Open src, myConn, , , CommandType

    Set rsClone = rs.Clone

    DataGrid1.DataSource = rs
    DataGrid2.DataSource = rsClone

    Så kan du lave en timer (findes direkte i Access et eller andet sted) og lade den se på Datagrid1.LeftCol og Datagrid2.LeftCol og kontrollere om deres værdier har ændret sig siden sidste timeout. Den der har ændret sig skrives over i den anden.

Finito bambino !
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:37 #31
LOL
Ja har den sådanset var ikke hjemme men pc'en stod tændt ;)

Okay. Prøver igen.
Avatar billede sjap Praktikant
26. august 2002 - 13:41 #32
Belaster det ikke pc'en at timeren skal bruges til at checke positionen hele tiden? Hvis timeren sættes til større værdier kommer det til at se lidt pudsigt ud, men det virker selvfølgelig.
Avatar billede moses Praktikant
26. august 2002 - 13:45 #33
Alternativt, kan du inføre to knapper, som ruller de to grids synkront.
Avatar billede moses Praktikant
26. august 2002 - 13:46 #34
10 gange pr. sekund er altså ikke nogen belastning !
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:48 #35
http://www.soulfly.dk/123.jpg <--- hvor vælger du den source hvor datagrid'en skal hente data fra?
Avatar billede moses Praktikant
26. august 2002 - 13:52 #36
Jamen det er det, som du før havde i dine tabeller eller queries ?!
Mener du, hvordan en connection opbygges ?
Avatar billede cc2000 Nybegynder
26. august 2002 - 13:54 #37
Ja men kan ikke finde det sted hvor man skal vælge den query der henviser til de data?
Avatar billede moses Praktikant
26. august 2002 - 13:58 #38
Hvis det er en query, så skal det sådan her ud:




    myConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\xxx\yyy\filnavn.mdb;Persist Security Info=False"
    src = "Query1"
    CommandType = adCmdText ' Bemærk forskellen her
Avatar billede moses Praktikant
26. august 2002 - 14:00 #39
UPS forkert

CommandType = adCmdStoredProc ' Bemærk forskellen her

Hvis du skriver selve SQL sætningen i src, så er det

CommandType = adCmdText ' Bemærk forskellen her
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:01 #40
Skal man lave en ny forbindelse til den samme database hvis det er den samme database der indeholder querien?
Avatar billede moses Praktikant
26. august 2002 - 14:07 #41
Ja !  Der er ikke tale om "den samme database". Datagrid controllen kender kun sig selv og ikke sine omgivelser. Dem skal du forklare den.

Alle Dim'erne lægger du i headeren (øverste del af koden udenfor alle subroutines og functions. Selve min kode lægger du bare ind i formens OnOpen event.
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:08 #42
Oki doki :)
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:13 #43
Er det korrekt at sådan som du skriver det skal name på datagridsne være datagrid1 og datagrid2?
Avatar billede moses Praktikant
26. august 2002 - 14:27 #44
Nej - når du insert'er disse datagrids, giver systemet dem et default-navn. Du kan jo se navnet ved at klikke en gang på dem og læse ovre i properties feltet "Name" - og det er dette navn du skal bruge.
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:31 #45
Så er det da også rigtigt nok at sådan som du skriver koden skal navnene være datagrid1 og datagrid2? :)
Navnet lige nu er: ActiveXCtl25
kan det passe?
Avatar billede moses Praktikant
26. august 2002 - 14:38 #46
Sikkert nok. Det ser skørt nok ud til at være et sandt defaultnavn ;-)
Du kan se det, hvis du skriver navnet inde i koden og trykker et punktum lige derefter. Så skal der komme nogle valgmuligheder op. Det er de properties og methods, som denne control har.
Og deriblandt skal også være "datasource" og "leftcol", som er dem du skal bruge.
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:41 #47
Yup.
Kan man lave det om så den bruger dao istedet for adodb? :)
Avatar billede moses Praktikant
26. august 2002 - 14:48 #48
Yup - betyder det, at det virker ?!
Datagrid er en ADO-fætter, så det tror jeg ikke !
Avatar billede moses Praktikant
26. august 2002 - 14:50 #49
Du skal snart til at være færdig - min kaffekande er ved at løbe tør !!!!!!  Det ligger i rædselskategorien mellem Cola i keyboardet på en bærbar og Processor Overheat for en AMD 2000+.
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:53 #50
What... er du bange for at få cola i tastaturet? så skal du bare tage det med i bad så virker det igen bagefter :) (har prøvet) *lol*
Tror nok at det istedet ligger omkring rædselskategorien Computere bliver forbudt :P

Nej det virker ikke fordi det er ado og jeg bruger dao.. men den burde jo kunne køre med begge slags.

Men er din kaffekande fyldt op imorgen tidlig igen? ;)
Avatar billede cc2000 Nybegynder
26. august 2002 - 14:54 #51
Hvad hedder referencen man skal slå til for at ado virker?
Avatar billede moses Praktikant
26. august 2002 - 14:59 #52
Du står i Access (med begge ben fast plantet) Vælger så menu:

Tools / Macro / Visual Basic

Derovre Vælger du menu:

Tools / References ...

Og der skal du have følgende afkrydset:

"Microsoft ActiveX Data Objects 2.1 Library"
Avatar billede moses Praktikant
26. august 2002 - 15:01 #53
Pyt med, om du nu bruger ADO, DAO eller en syvende. De har ikke noget med hinanden at gøre og kører helt parallelt. Men er et recordset åbnet med ADO, så skal man selvfølgelig bruge ADO.
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:04 #54
Ja Ja. Er heller ikke så bombet efter weekenden :D

Okay :) Så ved jeg da det med sikkerhed.

Men jeg får:
Run-Time error: 91
Object variable or with block variable not set.

I denne linje:
    myConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\bla-bla\bla-bla.mdb;Persist Security Info=False"
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:05 #55
og referencen til ado er slået til.
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:07 #56
Du siger bare til når du har fået den sidste dråbe ud af kanden så stopper vi bare for idag. Du skulle jo nødigt nå at blive frustreret pga du ikke har mere kaffe ;)
Avatar billede moses Praktikant
26. august 2002 - 15:07 #57
Den error du får skyldes manglende registrering af en kontrol eller reference.
Check lige, at du har de forskellige komponenter. Der kan risikere at stå MISSING ud for din ADO reference fra før.
Så er det, at jeg ikke kan huske, hvad man så skal gøre - AV - Ikke slå !!
Avatar billede moses Praktikant
26. august 2002 - 15:10 #58
Hvis ikke du har 2.1, så brug bare en lidt ældre version, der er en ski...
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:12 #59
Der står ikke missing ud for den...
http://www.soulfly.dk/321.jpg
Der kan du se hvad der er slået til. :)
Avatar billede moses Praktikant
26. august 2002 - 15:14 #60
Du har godtnok prioriteret ADO højere end DAO, men din DATAGRID står længere nede - måske du skulle lægge den op over DAO ?!?!
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:16 #61
Kan prøve :)
Avatar billede moses Praktikant
26. august 2002 - 15:17 #62
ÅH - NÆh

Du har ikke NEW ved dine definitioner af Connection og recordsets

Oppe i dine DIM'ere, skal du for ADODB'erne indsætte "NEW" efter "AS"
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:20 #63
okay... :)
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:22 #64
Så kom den lidt videre.

The connection cannot be used to perform this operation.
It is either closed or invalid in this context.

I linjen:
    rs.Open src, myConn, , , CommandType
Avatar billede moses Praktikant
26. august 2002 - 15:31 #65
du har sat
src = "navnet på din egen query"

Og har du husket at fortælle Access, at den ikke skal give dig eneret på at lukke MDB filen op, for så kan ingen andre komme ind imens.
Det gør du i Access menu:
Tools / Options

Faneblad:
Advanced

Feltet:
Default open mode : Skal stå på "Shared".

Luk skidtet - luk op igen og forsøg igen.
Avatar billede cc2000 Nybegynder
26. august 2002 - 15:40 #66
Står til shared, og querien er god nok.
Prøvede at lave det med en ny form og virker heller ikke.
Avatar billede moses Praktikant
26. august 2002 - 16:01 #67
Uf - det er svært, når man skal klare det med rå tekst.
Fejlen er min.

Du skal lige lave variable, der hedder

Dim ConnStr as string

Og den skal så være:
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\bla-bla\bla-bla.mdb;Persist Security Info=False"

Lige før din rs.Open .... skal du have en linie:

myConn.Open ConnStr

Så skulle det hjælpe helt gevaldigt.
Avatar billede moses Praktikant
26. august 2002 - 16:03 #68
Og så kan jeg også lige se, at der mangler en SET

SET DataGrid1.DataSource = rs
SET DataGrid2.DataSource = rsClone
Avatar billede cc2000 Nybegynder
26. august 2002 - 16:05 #69
Yeah... det virkede... altså sådan halvt... nu siger den at det er en forkert sql sætning.
min sql sætning lyder:
select * from bla;
Avatar billede cc2000 Nybegynder
26. august 2002 - 16:05 #70
Altså sql-sætningen kommer fra querien som jeg kalder.
Avatar billede cc2000 Nybegynder
26. august 2002 - 16:06 #71
Querien virker fint nok uden for vba'en.
Avatar billede cc2000 Nybegynder
26. august 2002 - 16:26 #72
Nå jeg har ikke mere cola. Så jeg er smuttet hjem for idag.
Er på igen imorgen tidlig senest kl 8:15.
Avatar billede moses Praktikant
26. august 2002 - 16:29 #73
Ja det må du ikke !!!
Der skal stå:

SELECT bla.ID, bla.Navn, bla.Adresse FROM bla WHERE bla.Navn = "Olsen"

Desuden skal du så lige huske, at bruge Commandtype = adCmdText
Avatar billede moses Praktikant
26. august 2002 - 20:51 #74
Ja efter at have læst din tekst igen, kommer jeg lidt i tvivl.

Hvis du definerer
src = "bla.ID, bla.Navn, bla.Adresse FROM bla WHERE bla.ID = 4711"
så skal
CommandType = adCmdText

Hvis du definerer
src = "query1"
så skal
CommandType = adCmdStoredProc
Avatar billede cc2000 Nybegynder
27. august 2002 - 08:19 #75
Den fejlede med querien. Men hvis jeg istedet brugte adcmdtext og skrev sql så virkede det. :)
Avatar billede cc2000 Nybegynder
27. august 2002 - 08:32 #76
Hmm... jeg har et lille bitte problem nu. Hvordan skal jeg få datagrid'en til at loade indholdet?
Der er nemlig ikke en funktion der hedder datagrid_onload()
Avatar billede cc2000 Nybegynder
27. august 2002 - 11:10 #77
Fik den til at loade nu. Men kan ikke få den der scroll funktion til at virke.
Hvis jeg prøver at lave en msgbox på datagrid1.left så siger den hele tiden 0 ligemeget hvor jeg er henne.
Avatar billede moses Praktikant
27. august 2002 - 13:40 #78
UPS Min mail server er nede, så jeg har heller ikke fået mail fra eksperten-robotten.

Man loader ikke et datagrid. Man definerer blot det hele og så er den "på".

Du skal nok bruge den rigtige property - og den hedder:

Datagrid1.LeftCol

og angiver nummeret på den kolonne, der er længst til venstre og som stadig kan ses i kontrollens eget scope. (Det sidste betyder bare, at det KUN gælder rullegardinet inde i selve kontrollens område. Det gælder altså ikke, hvis du laver et område for lille til selve kontrollen.)
Avatar billede cc2000 Nybegynder
27. august 2002 - 13:46 #79
doh... havde glemt Col i LeftCol :/
Men det ser ud til at virke nu :)
Avatar billede cc2000 Nybegynder
27. august 2002 - 13:49 #80
Private Sub Datagrid1_Scroll(Cancel As Integer)

    Set Datagrid2.LeftCol = Datagrid1.LeftCol

End Sub

skulle det der ikke være muligt?
Avatar billede moses Praktikant
27. august 2002 - 21:22 #81
Jo, men du skal ikke bruge SET, da det jo ikke er selve objectet, men kun properties for et object du arbejder med.

Hvis du skrev f.eks.

Set Datagrid1.DataSource = myRecordset

så er det jo et object - nemlig et ADO recordset !!

Da liegt die Scheisse des Hundes begraben !
Avatar billede cc2000 Nybegynder
28. august 2002 - 08:47 #82
Ohh... das finde ich scheisse :) Aber es funktioniert.
Så derfor udnævner jeg dig som vinderen.
Vil du have mere end 30point for denne store smørre?
Avatar billede moses Praktikant
28. august 2002 - 09:22 #83
De 60 point, der sådan næsten var lovet midt i vores konversation er vel rimelige for så mange bogstaver og tal - ok?  :-)
Avatar billede moses Praktikant
28. august 2002 - 09:26 #84
Så vil jeg give dig en ide:

Lav to globale variabler.

dim LeftCol1 as Long
dim LeftCol2 as Long

I slutningen af din "scroll" subrutine sætter du dem til hhv. den ene og den anden LeftCol værdi.
Så laver du en dobbeltomvendt Scroll funktion:

if LeftCol1 <> Datagrid1.LeftCol then
  Datagrid2.LeftCol = Datagrid1.LeftCol
else
  if LeftCol2 <> Datagrid2.LeftCol then
    Datagrid1.LeftCol = Datagrid2.LeftCol
  endif
endif

Så er det nemlig ligemeget, hvilket datagrid du rykker i, så følges de ad.
Avatar billede cc2000 Nybegynder
28. august 2002 - 09:57 #85
Okay takker :)
Avatar billede moses Praktikant
28. august 2002 - 10:20 #86
Husk at lukke !
Avatar billede moses Praktikant
28. august 2002 - 10:21 #87
Mange tak !
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