25. januar 2005 - 17:58Der er
32 kommentarer og 3 løsninger
Hjælp til thomasjepsen's "Historik-funktion"
Jeg har downloadet thomasjepsen’s ”Historik”-funktion og implementeret den i min egen db. Men jeg får en Runtime fejl 13 ”Type Mismatch”, når jeg forsøger at:
- Oprette en ny post - Redigere en eksisterende post - Slette en post
Og herefter lukker formularen.
Jeg er klar over, at fejlen ”Type Mismatch” normalt fremkommer, når man forsøger at sammenligne alfanumeriske felter med numeriske. Men jeg har kontrolleret alle felttyper, uden at finde nogen fejl.
Når jeg afprøver thomasjepsen’s demo fungerer den perfekt. Naturligvis har jeg lavet en fejl – Men hvor. Nu har jeg stirret mig blind på det siden kl 08:00 imorges
If you only need to save data from the first table then you could try altering the first parameter to the table name and then make sure that ALL fields from the first table are selected in th equery in the same order as in the table
Jeg tror ikke jeg når ret meget længere iaften. Mine øjne er helt firkantede. Men hvis I vil se nærmere på det ved lejlighed, ville jeg blive meget glad.
Jeg vil ud at gå en tur og nyde det pragtfylde vejr og få hjernen blæst ud. - 5 grader, vindstille og nymåne.
ja, det faldt jeg også over....du kan ikke umiddelbart bruge en forespørgsel som postkilde til formularen.
Du kan, hvis du ændre din historik tabel til at indeholde de samme felter som din forespørgsel (hvordan skal den ellers vide hvilke felter, som skal logges?)
Samtidig skal du ændre navnet på tblHistorik til "histUdlån" og ændre funktionen til dette:
Public Function SkrivTilHistorik(Tabelnavn As String, PrimærNøgleNavn As String, PrimærNøgleVærdi As Variant, Handling As Byte) Dim db As Database Dim tdef As QueryDef Dim tdefHist As TableDef Dim n As Byte Dim SQLStr As String
Set db = CurrentDb Set tdef = db.QueryDefs(Tabelnavn) Set tdefHist = db.TableDefs("hist" & Mid(Tabelnavn, 4))
SQLStr = "INSERT INTO [hist" & Mid(Tabelnavn, 4) & "] ( " For n = 0 To tdef.Fields.Count - 1 SQLStr = SQLStr & "[" & tdef.Fields(n).Name & "], " Next n SQLStr = SQLStr & "ÆndretAf, ÆndretDato, HistorikHandling ) "
Som jeg også skrev i koden, så var eksemplet ikke færdigudviklet og gennemtestet. Og i hvert fald, så bør jeg nok forklare opsætningen lidt nærmere :o)
Jeg har aldrig selv fulgt "reglen", men har mødt den flere gange. Jeg tror mest, at den går på, at hvis man baserer en forespørgsel på flere tabeller, kan det være svært at gennemskue konskvenserne: låste poster, adderende joins m.m.
Men hvis man ved, hvad man gør, så er der ingen problemer.
Jeg har mest hørt om den modsatte regel Det er nemmere at ændre i tablestrukturer hvis formularer og rapporter bygger på forespørgsler - så skal man nemlig kun ændre feltnavne i forespørgslerne ikke i alle formulare og rapporter
ja, det er klart, at hvis du bare laver en simpel forespørgsel med de samme flter som tabellen, så har det samme effekt som hvis man tog selve tabellen. Men når man sætter flere tabeller sammen (som Mugs har gjort) så kan det gå galt.
Men somjeg skrev før, så er det jo ikke noget problem, hvis man bare ved hvad man gør :o)
Efter en længere spadseretur ser jeg, at forslagene er flydt i en lind strøm. Efterfølgende kan jeg godt se, at jeg ikke har haft hele hjernen med, da jeg forsøgte mig ud i denne funktion.
Jeg vil nærlæse forslagene imorgen.
Faktisk var det en lang spadseretur. Helt ned i byen til BUCH's Vinstue, hvor man for ussel mammon kan få skjænket et glas med en ½ L godt og køligt fadøl fra Sophus Fuglsang's udmærkede bryggeri.
Når man ikke kan finde ud af Access, så man jo foretage sig noget andet. Det var egentlig meningen, at jeg ville læse iaften, er igang med en 700 siders mursten af Nelson DeMille. Den tegner godt.
nih - Blot fordi man kommer ca 30 Km længere nord på, er der jo ingen grund til at lægge litteraturen på hylden og blive barbarisk. Hver ting til sin tid ;o)
Da Danmark i fortiden blev befolket fra Syd, kom hærskaren af urmennesker kom op i Sønderjylland, så de et skilt hvor på der var skrevet "Haderslev". De kloge, der kunne læse stoppede op, og bosatte sig her. De mindre kloge, der dårligt kunne læse, gik videre og kom lidt længere nord på til Frededricia. Så mødte de et et skilt med 2 pile. Een pil pegede pegede til højre og der var skrevet "Sjælland". Den anden pil pegede videre mod Nord med teksten "Jylland". De dumme der ikke kunne læse drejede til højre.
Jeg har ændret db efter Jeres anvisninger. thomasjepsen's kode er lagt ind, og så kører det hele perfekt (Da jeg havde ændret indekseringen til Ja-dubletter tillades) ;o)
Der kan du se....det hjalp at få sovet branderten ud, haha :o)
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.