Avatar billede dkkarpen Nybegynder
26. marts 2001 - 13:08 Der er 21 kommentarer og
1 løsning

Sortering

Halløj

Jeg vil sortere på et nummer der er placeret i et tekstfelt:

Numrene kan dog variere.

SM A-8-00
SM A-11-00

Jeg kan ikke sortere med en mid(nummer,6,1) fordi numrene varierer i længde (1 - 2). Hvad gør jeg?
26. marts 2001 - 13:15 #1
Det her skulle kunne gøre det:
?mid[Felt],6,instr(7[felt], \"-\")-6)

/Thomas
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 13:23 #2
Undskyld jeg kategorien er forkert. Det var til ASP. Men den kan du måske også klare?
26. marts 2001 - 13:24 #3
det burde være det samme...
Jeg går ud fra, at du putter det i en SQL-sætning?

/Thomas
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 13:26 #4
Jeg får fejl. Min streng ser således ud:

order by mid(smnummer,4,1), smudsendelsesdato desc, ?mid[smnummer],6,instr(7[smnummer], \"-\")-6)
Avatar billede privaten Nybegynder
26. marts 2001 - 14:10 #5
?mid[Felt],6,instr(7,[felt], \"-\")-6)

Mangler der ikke et komma?
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 14:15 #6
order by mid(smnummer,4,1), smudsendelsesdato desc, ?mid[smnummer],6,instr(7,[smnummer], \"-\")-6)

Giver:

Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typerne stemmer ikke overens: \'[string: \" order by mid(smnumm\"]\'
/dsasm/smb.asp, line 468
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 14:17 #7
Ok - der var vist en \" - fejl.

Men nu giver det:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver]COUNT-felt er ikke korrekt
Avatar billede privaten Nybegynder
26. marts 2001 - 14:20 #8
Hvordan ser hele dit SQL ud?
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 14:23 #9
order = \" order by mid(smnummer,4,1), smudsendelsesdato desc, ?mid[smnummer],6,instr(7,[smnummer], \"\"-\"\")-6)\"

SQL = \"select smid, sagsfremstilling, smudsendelsesdato, smnummer from b5 where \" & aargang & smcap & SQLClause(words, \"sagsfremstilling\") & order

og sådan her kunne en forespørgsel se ud:

select smid, smnummer from b6 where ( mid(smnummer,4,1) = \'A\') AND (((smnummer LIKE \'%a%\'))) order by mid(smnummer,4,1), smudsendelsesdato desc, ?mid[smnummer],6,instr(7,[smnummer], \"-\")-6)
Avatar billede dkkarpen Nybegynder
27. marts 2001 - 09:59 #10
Hvad siger i?
Avatar billede privaten Nybegynder
27. marts 2001 - 10:22 #11
Vildt skud, måske men:

Prøv med (words, \'sagsfremstilling\') i stedet for (words, \"sagsfremstilling\")

Jf.:

Single versus Double Quotes with ADO
ADO imposes no restrictions on the syntax used to generate a recordset or execute a statement. These restrictions come from the underlying native OLE DB provider, such as the OLE DB Provider for Index Server, or the OLE DB Provider for ODBC Drivers.

When you use the OLE DB Provider for ODBC Drivers, the ODBC driver itself defines valid SQL syntax for use with ADO. You must keep this in mind when migrating SQL syntax to ADO.

The SQL statement below runs successfully when DAO is used to issue commands to the Jet database engine:


  INSERT INTO Authors ( Au_ID, Author ) VALUES (  54, \"Record # 54\" )


With ADO however, this syntax generates one of the following three errors:

    -  0x80040E10

    -  -2147217904

    -  Too few parameters.  Expected 1.


Instead, use the syntax below:

  INSERT INTO Authors ( Au_ID, Author ) VALUES (  54, \'Record # 54\' )


Avatar billede dkkarpen Nybegynder
27. marts 2001 - 15:13 #12
Et meget vildt skud. SQLClause henviser jo ti en funktion.

Det virker ikke.
Avatar billede dkkarpen Nybegynder
28. marts 2001 - 09:59 #13
Har i givet op?
Avatar billede privaten Nybegynder
28. marts 2001 - 10:51 #14
Nope, men tiden tillader ikke at gå dybere i sagen idag :(

(Thomas har vel iøvrigt svaret tilfredsstillende på det oprindelige spm., har han ikke? - Jeg mener, det spm. vi nu kigger på, er vel i princippet et nyt?!)

Prøvede du at skifte dobbelt-gnyffer ud med enkelt-gryffer?
Avatar billede dkkarpen Nybegynder
28. marts 2001 - 10:54 #15
Nej det oprindelige spm. er IKKE løst. Ja jeg prøvede med enkelt-gryffer. Men den går ikke...
Avatar billede proaccess Nybegynder
28. marts 2001 - 16:50 #16
Din ORDER BY skal slutte med:
,  Mid([smnummer],6,instr(7,[smnummer], \"-\")-6)

Det vil sige: Væk med \'?\', og ind med en \'(\'

ProAccess
Avatar billede dkkarpen Nybegynder
29. marts 2001 - 09:02 #17
Der var den ;-) Tak!
Avatar billede dkkarpen Nybegynder
29. marts 2001 - 10:23 #18
Nej - den dur sgu ikke alligevel!!!

Sorteringen bliver f.eks.:

9
8
7
6
5
4
3
2
10
1
Avatar billede dkkarpen Nybegynder
29. marts 2001 - 10:24 #19
Eller

9
8
7
10
Avatar billede dkkarpen Nybegynder
29. marts 2001 - 10:24 #20
Det ser ikke rigtigt UD!
Avatar billede dkkarpen Nybegynder
29. marts 2001 - 10:29 #21
Måske løste jeg den med en Cint(Mid([smnummer],6,instr(7,[smnummer], \"-\")-6))
Avatar billede proaccess Nybegynder
29. marts 2001 - 10:33 #22
Så må vi prøve at tage talværdien, og så sortere efter denne...

PRØV:
  Val(Mid(smnummer,6,2))
i stedet for
  Mid([smnummer],6,instr(7,[smnummer], \"-\")-6)

ProAccess
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