Avatar billede massgl Nybegynder
02. november 2010 - 08:34 Der er 11 kommentarer og
1 løsning

Kategoriinddeling af tabel (Access)

Hej,

Jeg har en lang liste, der gerne skal inddeles i kategorier. Den lange liste er sorteret efter et datofelt og inddelingen skal være således, at de første 100 linier fra toppen og ned, skalvære i samme kategori. Efter de 100 og ned til 200 skal det være en anden kategori, og således så der er i alt tre kategorier.
Kategorierne skal være et felt i en rækken, der fx skriver hhv. Kat.1, Kat.2 og Kat3.

Kan det lade sig gøre?

Mvh Mass
Avatar billede hugopedersen Nybegynder
02. november 2010 - 08:55 #1
Som jeg ser det, så vil det nemmeste være at skrive en stump VBA der looper din tabel og skriver Kat 1 i de først 100 records, Kat 2 i de næste 100 og Kat 3 i resten.

Jeg kan godt lige give det et forsøg lige om 1/2 time hvis det er
Avatar billede neoman Novice
02. november 2010 - 09:04 #2
Lav en query hvor den sorterer efter MitKategoriFelt [ASC] og  MinDato [ASC], nævnt i den rækkefølge i querydesigngriddet.
Avatar billede massgl Nybegynder
02. november 2010 - 09:11 #3
Hugopedersen: Hvis du har tid/lyst ville det være rigtig rart og en stor hjælp. :-)
Avatar billede hugopedersen Nybegynder
02. november 2010 - 09:18 #4
Følgende tager udgangspunkt i at der sorteres efter fldTimestamp og record nummer 1 til 100 bliver Kat. 1, 101 til 200 bliver Kat. 2 og alle øvrige bliver Kat. 3
Du skal selvfølgelig tilpasse feltnavne.
Huske reference til Microsoft ActiveX Data Object

Public Function fhpCategorize() As Integer
On Error GoTo Error_fhpCategorize
  Dim rst As New ADODB.Recordset
  Dim intRecord As Integer
 
  strSQL = "SELECT * FROM tblTest ORDER BY fldTimestamp"
  rst.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockOptimistic
 
  intRecord = 0
  While Not rst.EOF
    intRecord = intRecord + 1
    Select Case intRecord
      Case 1 To 100
        rst!fldKategori = "Kat. 1"
      Case 101 To 200
        rst!fldKategori = "Kat. 2"
      Case Else
        rst!fldKategori = "Kat. 3"
    End Select
    rst.Update
    rst.MoveNext
  Wend
 
  rst.Close
  Set rst = Nothing

Exit_fhpCategorize:
  Exit Function

Error_fhpCategorize:
  fhpCategorize = -32768
  Select Case Err.Number
    Case 3021
    Case 2501
    Case Is < 0
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpCategorize'"
  End Select
  Resume Exit_fhpCategorize

End Function
Avatar billede hugopedersen Nybegynder
02. november 2010 - 09:19 #5
Hvis du vil have min test DB (Access 2007) så giv et praj
Avatar billede massgl Nybegynder
02. november 2010 - 09:20 #6
Super fedt, Pedersen - jeg læser lige igennem, tilasser og indsætter :)
Avatar billede massgl Nybegynder
02. november 2010 - 09:26 #7
- Det vil jeg rigtig gerne !
masslyngby@hotmail.com
Avatar billede hugopedersen Nybegynder
02. november 2010 - 09:46 #8
Er sendt til adressen.
Avatar billede massgl Nybegynder
02. november 2010 - 10:16 #9
Fantastisk Hugo! Mange tak for hjælpen :) - Du er dagens mand. Vil gerne give point.
Avatar billede hugopedersen Nybegynder
02. november 2010 - 10:28 #10
Jamen det siger jeg da tak for :-)

Kun godt at det kunne hjælpe dig.
Du kan jo evt. udvide case delen hvis behovet opstår.
Avatar billede massgl Nybegynder
02. november 2010 - 10:37 #11
Ja - det kan vidst ordnes med en copy-paste aktion :-) Endnu engang tak !
Avatar billede hugopedersen Nybegynder
02. november 2010 - 11:00 #12
Velbekom og tak for point.

Du har min hotmailadresse nu, hvis der skulle opstå andre spørgsmål i forbindelse hermed.
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