15. september 2004 - 11:37Der er
11 kommentarer og 3 løsninger
clng() giver overløb
I feltet i en forespørgsel har jeg angivet følgende formatering: Leder cprnummer: IIf(IsNull([cprnr])=Sand;CInt("0000000000");CLng([cprnr])). [cprnr] stammer fra en tabel. Når jeg kører forespørgslen får jeg fejlmeddelsen - "Der opstod et overløb". Jeg har forsøgt at lave en forespørgsel som gør det samme i en database og det virker. Endvidere virker det hvis jeg laver en ny forespørgsel i samme database som henter data fra [cpr]. Forespørgslen som fejler har mange felter. I det nedenstående er forespørgslens SQL-tekst:
SELECT DISTINCT CInt(IIf([AfdID]='00','1',IIf([SektID]='00','2','3'))) AS Organisationsniveau, tblOrganisationsid.Organisationsid, IIf([Organisationsniveau]='1',[insttxt],IIf([Organisationsniveau]='2',[afdtxt],[sekttxt])) AS Langtnavn, UCase(Left([Langtnavn],5)) AS Kortnavn, qryOrganisationshiraki.tblOrganisationsid.Organisationsid AS [Overligggende organisationsid], Now() AS Oprettetdata, Now()+360 AS Slutdato, "R" AS Status, IIf(IsNull([cprnr])=True,CInt("0000000000"),CLng([cprnr])) AS [Leder cprnummer], tblInstiVA.AdmOmrID AS Organisationsomraade, tblInstiVA.InstTypID AS Organisationstype, tblInstiVA.AdmOmrID AS Administrationsomraade, tblInstiVA.IASnavn AS Adressenavn, tblInstiVA.Adresse AS Vejnavn, "" AS Placering, tblInstiVA.StedKode AS Stednavn, IIf(IsNull([postnr])=True,0,CLng([Postnr])) AS Postnummer, 'DK' AS Landekode FROM (((tblInstiVA LEFT JOIN tblLederiVA ON tblInstiVA.LederId = tblLederiVA.LederID) LEFT JOIN tblAD_MedArb ON (tblLederiVA.ForNvn = tblAD_MedArb.ForNvn) AND (tblLederiVA.EfterNvn = tblAD_MedArb.EfterNvn)) INNER JOIN tblOrganisationsid ON (tblInstiVA.InstID = tblOrganisationsid.InstID_) AND (tblInstiVA.AfdID = tblOrganisationsid.AfdID_) AND (tblInstiVA.SektID = tblOrganisationsid.SektID_)) INNER JOIN qryOrganisationshiraki ON tblOrganisationsid.Organisationsid = qryOrganisationshiraki.qryOverliggendeOrganisationsid.Organisationsid;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
En long kan ikke nødvendigvis indeholde et cprnummer. En long kan indeholde tal op til 2147000000 ca. Det vil sige, at hvis du er født senere end den 21 i en måned, vil clng)= give overløb.
clng konverterer en streng med cifre til en long, der går fra ca. -2 milliarder til ca. +2 milliarder. Et CPR nummer, med en fødselsdato et stykke oppe i 20-erne, fx. 2901010101 er over +2 milliarder.
Men et CPR-nummer skal du ikke opfatte som et tal - det er en streng med cifre.
et alternativ kunne være double eller beholde det som tekst. Så ville du kunne tilføje en ekstra dimension (et foranstillet tal eller bogstav), hvis personen eksempelvis var bosiddende i sverige eller tyskland.
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.