05. februar 2005 - 18:54Der er
7 kommentarer og 1 løsning
Kan ikke rette i VBA i Access2003/XP
Se følgende eksempel fra en forespørgsel i en rapport. AFB: IIf([AFBESTILT]=-1,"Afbestilt",Null) GRAT: IIf([GRATIS]=-1,"Gratis",Null)
Det første eksempel med syntaksen AFB: IIf([AFBESTILT]=-1;"Afbestilt";Null) er skrivet i Access2000/Windows98 fornylig og kører fint i Access2003/XP. Den anden sætning, som indholdsmæssigt er helt identisk med den første kan ikke indsættes(syntaktisk fejl med den sande del markeret som fejlen). IT-folkene, hvor jeg arbeder kan ikke hjælpe. Mit eget gæt er at fejlen kommer fra XP. Et forsøg med installation af Access2000 på min maskine med XP gav samme fejl.
Mit spørgsmål er derfor om XP kan ændres, så jeg kan foretage rettelser her. Basen har kørt upåklageligt i over 10 år, før XP på Windows NT4.
PS Har set et sted på nettet et lignende problem med version 9 og 11 - de omtalte versioner af Access. Men løsningen var ikke ligetil og der skulle en ekspert til at løse det. Så det største problem er altså at finde en sådan ekspert!
Jeg prøver lige med et par gæt, som du måske allerede har prøvet. Bare sig til, hvis du selv synes du har prøvet alt dette, og derfor ikke gider høre mere om det.
Som det står ovenfor, kan jeg (selvfølgelig) ikke se nogen syntaxfejl, men jeg går ud fra at du har skrevet det præcist som i forespørgslen.
- Du bruger semikolon og komma lidt i flæng. Er du sikker på hvad der er separatortegn? - Du skriver AFB virkede i 2000/98. Har du prøvet GRAT i den database - og virkede det der? - Har du prøvet at skrive noget andet end "Gratis"? Det jeg mener her er, prøv at kopiere AFB og se at den virker. Lav den så om lidt af gangen, indtil det går galt - så er det måske lettere at lokalisere fejlen (det er jo ikke altid det der peges på, der er den primære årsag).
Tak for dine gode forslag, som desværre heller ikke virker. Har kigget på problemet adskillige gange og prøvet alle dine forslag flere gange. Seperatoren ændres automatisk til komma af Access 2003 (hele basen). Har også prøvet at skrive sætningen i feltet(=......). Det sære er, at hvis jeg kopierer et felt, der virker, til et nyt felt(og ændrer feltnavnet) virker det heller ikke. Det er muligt det hele er blevet for komplext pga de mange versioner. Basen er startet i Access 3 og senere ændret i Acces97 og Access2000 flere gange. Men mit bedste gæt er dog stadig operativsystemet. Hvis jeg lukker hele basen før jeg har forladt den linje, jeg har skrevet i, kommer der en fejlmeddelse om at VBA-forbindelsen til OLE og DDE ikke er afbrudt. Begge dele hører til Windows. Vi har også prøvet at ændret filformatet til 2000, og det gør heller ingen forskel.
Hmm. Det er vist en af de rigtigt trælse! Du skriver, at selv en kopi af det felt, der virker, resulterer i et nyt felt, der så ikke virker. Jeg ved ikke om det er for komplekst - jeg ved heller ikke hvilke grænser Access har, men har du prøvet at slette/fjerne det felt, der virker? Det er blot endnu et skud i tågen, men hvis du ligger lige på en eller anden grænse, så måske...
- Da din DB blev portet over i Access 2003 skulle den gerne lave en konvertering - gik denne ok uden fejlmeddelelser? - Er der tilfoejet referencer til baade DAO og ADO?
Ved godt disse ikke direkte har noget med problemet at goere, men min erfaring er at problemer har en tendens til at propagere gennem access nogle gange :-)
Kære allesammen! Mange tak for de mange gode forslag. Fandt selv løsningen hos Microsoft sent i aftes. Under eksempler på funktioner fandt jeg: =IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed"). Efter flere forsøg med "Yes" og "Ja", fant jeg ud af at kun dette virkede:
=IIf([GRATIS]="-1","Gratis","")
Alle 3 led skal åbenbart nu være tekststrenge, men jeg ved faktisk ikke (endnu) om det afhænger af hvordan forsespørgslen ser ud. Måske skal der stå Yes/Ja hvis der i forespørgslen er et afkrydsningsfelt og ikke 0/-1.
Synes godt om
Ny brugerNybegynder
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.