Just nu i M3-nätverket
Jump to content

Siffror som inte existerar


danne_eriksson

Recommended Posts

danne_eriksson

Tjena.

 

 

Jag sitter med ett medlemsregister i en MS Access-databas och skulle behöva hjälp med en SQL-sträng.

 

 

Varje medlem har ett unikt medlemsnr från 0 och uppåt. Men jag skulle vilja lista alla nummer som inte används mellan 0 och det högsta medlemsnumret.

 

Ex: av medlemsnumrena 0,2,3,5,10 kan jag lista de som saknas: 1,4,6,7,8,9.

 

 

Tack på förhand

/Daniel

 

 

Link to comment
Share on other sites

Här kommer en nästan bra lösning:

 

SELECT mnr +1

FROM medlemmar

WHERE mnr IN (SELECT mnr FROM medlemmar)

AND mnr+1 NOT IN (SELECT mnr FROM medlemmar)

AND mnr < (SELECT MAX(mnr) FROM medlemmar)

 

Listar inte alla men kanske tillräckligt många lediga nummer.

 

 

Link to comment
Share on other sites

danne_eriksson

Tack för hjälpen.

 

Hur skriver jag ut medlemsnumren från databasen för jag får bara felmedelandet:

 

Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

 

 

Addera = "SELECT medlemsnr +1 From Babysim WHERE medlemsnr IN (SELECT medlemsnr FROM babysim) AND medlemsnr+1 NOT IN (SELECT medlemsnr FROM babysim) AND medlemsnr < (SELECT MAX(medlemsnr) FROM babysim)"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

Me.List1.AddItem RecSet("medlemsnr")

RecSet.MoveNext

Loop

RecSet.Close

 

Link to comment
Share on other sites

Tja, din SQL-sats ser helt OK. Tydligen så klarar inte Access av SQL-standarden...

 

Du kan ju testa med att sätta parenteser kring medlemsnr+1, så kanske det hjälper.

 

Annars så får du testa med att ta bort en sak i taget och se när det går bra. Då vet du vad som krånglar. Först då kan man ta itu med problemet.

 

Link to comment
Share on other sites

danne_eriksson

Addera = "SELECT medlemsnr +1 From Babysim WHERE medlemsnr IN (SELECT medlemsnr FROM babysim) AND medlemsnr+1 NOT IN (SELECT medlemsnr FROM babysim) AND medlemsnr < (SELECT MAX(medlemsnr) FROM babysim)"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

Me.List1.AddItem "test"

RecSet.MoveNext

Loop

RecSet.Close

 

 

SQL satsen fungerar utmärkt för när jag skriver "test" istället så fungerar det, men när jag försöker lista RecSet("medlemsnr") så blir det felmeddelande.

 

Tack för hjälpen i allafall, jag får fundera vidare.

 

 

/Daniel

 

Link to comment
Share on other sites

danne_eriksson

Addera = "SELECT (medlemsnr +1) as med From Babysim WHERE medlemsnr IN (SELECT medlemsnr FROM babysim) AND (medlemsnr+1) NOT IN (SELECT medlemsnr FROM babysim) AND medlemsnr < (SELECT MAX(medlemsnr) FROM babysim)"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

Me.List1.AddItem RecSet("med")

 

RecSet.MoveNext

Loop

RecSet.Close

 

 

 

Det löste sig....

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...