Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sortera siffror,bokstäver

Postades av 2009-08-10 16:46:49 - Eva Brunnelöv, i forum access, Tråden har 7 Kommentarer och lästs av 1987 personer

Jag har ett antal frågor som har nummer 1, 2 ,3 osv. Problemet är att en del har även bokstäver, 6a, 6b.. Hur ska man kunna sortera dom så att dom kommer i ordning i en rapport?
//eva


Svara

Sv: Sortera siffror,bokstäver

Postades av 2009-08-10 20:14:47 - Johan Djupmarker

Ett sätt är att spara siffran i ett numeriskt fält i databasen och bokstaven i ett textfält.

/Johan


Svara

Sv: Sortera siffror,bokstäver

Postades av 2009-08-10 20:42:48 - Stefan Brännström

Ett annat sätt är att ha ett sorteringsfält i tabellen.


Svara

Sv:Sortera siffror,bokstäver

Postades av 2009-08-11 10:00:23 - Eva Brunnelöv

Tack för kreativa idéer. Synd att det inte gick att göra direkt med nån typecasting liknande - TeckenNum
//eva


Svara

Sv: Sortera siffror,bokstäver

Postades av 2009-08-11 11:31:32 - Niklas Jansson

I princip kan du lösa det genom att:
1. Ta reda på max antal bokstäver (förmodligen 1, men låt säga att det finns 27 varianter, då kommer sannolikt aa efter z? I så fall är det två bokstäver) Kalla det X.
2. Om en rad har färre bokstäver än X på slutet, lägg till blanktecken mellan siffrorna och bokstäverna så att blanksteg + bokstäver = X.
3. Lägg på 0:or först så att alla rader blir lika långa.
4. Sen kan du sortera på raden.
Dvs:
1,2,3 -> "1","2","3"
1,2a,3 -> "1 ", "2a", "3 "
1a,2ab,3 -> "1 a", "2ab", "3 "

Alternativt - lite snyggare:
1. Räkna max antal bokstäver, kalla det X.
2. Ersätt bokstäver med deras position i alfabetet (alt. ascii-kod av lowercase av bokstaven), och multiplicera talet med 100 ^ antalet tecken som saknas.

Alltså,
1,2,3 -> 1,2,3
1,2a,3 -> 100, 201, 300
1,2ab,3 -> 10000, 20102, 30000


Svara

Sv: Sortera siffror,bokstäver

Postades av 2009-08-11 20:47:21 - Andreas Hillqvist

Baserat på antagandet att " 9" < " 10" så kan du <i>padda</i> med mellanslag framför numret.
Antag att du bara skall hantera värden upp till 999.

Lägg till följande funktion i en modul i Access:

Public Function Sortable(Value As Variant) As Variant
Dim i As Long
Dim Result As String * 3
    If IsNull(Value) Then
        Sortable = Null
    Else
        For i = 1 To Len(Value)
            If Not IsNumeric(Mid(Value, i, 1)) Then
                Exit For
            End If
        Next
        
        RSet Result = Left(Value, i - 1)
        Result = Result + Mid(Value, i)
        
        Sortable = Result
    End If
End Function


I din SQL fråga skriv:
SELECT *
FROM TableName
ORDER BY Sortable(ColumnName)


Då bör sorterings ordningen vara:
1
1a
1b
...
1z
2
2a
...
2z
...
9z
...
10
10a
10b
...
10z
20
20a
20b
...
20z
...
99z
100
100a
100b
...
999z



Dock kommer dubelbokstäver sorteras fel: (" 1aa" > " 1a") and (" 1aa" < " 1b") vilket ger
1a
1aa
1ab
1ac
2b
2ba
2bb
2bc


Svara

Sv:Sortera siffror,bokstäver

Postades av 2009-08-18 08:51:14 - Eva Brunnelöv

Idén med ett fält i tabellen var jättesmart. Fungerar i vanliga frågor men jag får inte till det i en korsfråga.
Har lagt in funktionen men får inte skriva select * !! Mitt VB envisas med att det efter select måste komma ett case. Jag fattar ingenting. Jag kan inte ens klistar in exixterande fungerande kod
//eva


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
394
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies