28. oktober 2009 - 19:21Der er
14 kommentarer og 1 løsning
Hjælp til Gruppering - relateret til et tidligere spørgsmål "890846"
Efter at have fået løst problemet som jeg havde i spørgsmål 890846, har jeg dog fået yderligere et problem eller to ved konstruktionen. Jeg har flere forskellige registreringsnumre (AC Reg) og desuden har jeg et felt "AMTSNumber)" hvor det relevante inspektionsnummer indtastes. Problemet opstår hvis jeg åbner formularen med et nyt registreringsnummer så overføres "Insp Target hours" fra det tidligere registreringsnummer til "Target hours" for det aktuelle registreringsnummer. Det samme gør sig gældende når det drejer sig om en anden inspektion. Jeg tror det skal laves med gruppering af autonummeringsfelter , men min viden rækker simpelthen ikke til at sætte det rigtigt sammen. Nedennævnte kode er i "FrmC172ProductionControlledItemsImplement" under "Private Sub Form_BeforeInsert" Feltet "AC Reg" er i "TblAircraftInformation" , som har et Autonummerfelt som også er i forespørgslen. Feltet "AMTSNumber" er i "TblC172ProductionControlledItemsImplement", som har et Autonummerfelt som også er i forespørgslen.
Dim X As Single X = Nz(DMax("[Insp Target hours]", "QryC172ProductionControlledItemsImplement", ([AC_Reg] = "Me.AC_Reg")), 0) Me![Target hours] = X
Dim Y As Single Y = Nz(DMax("[Insp Target cycles]", "QryC172ProductionControlledItemsImplement", ([AC_Reg] = "Me.AC_Reg")), 0) Me![Target cycles] = Y
Dim Z As Variant Z = DMax("[Insp Target date]", "QryC172ProductionControlledItemsImplement", ([AC_Reg] = "Me.AC_Reg")) If Not IsNull(Z) Then Me![Target date] = Z
Du kna ikke gruppere på autonumrer. I sagens natur mmed et autonummer findes der kun dette ene autonummer i tabellen. Du kna naturligvis have flere autonumrer i db, men i hver sin tabel. Man kan naturligvis forestille sig den mulighed, at en række poster i forskellige tabeller kan have et ens autonummer, men det er så søgt en mulighed, at det må grænse til det usandsynlige.
Du gør en fejl med dit autonummer, og det er at bekymre sig om værdien at nummeret. du skal ike bruge det til noget som helst. Db skal bruge det, men ikke dig.
Jeg forstår på dette og dit tidligere spørgsmål, at du overfører en værdi fra en post til en ny post. Hvis autonummerfeltet findes i denne nye post i den underliggende tabel, vil nummeret increase med 1. Det har du overhovedet ingen indflydelse på.
I sådan en situation plejer at at lade db måle, om der er tale om en ny post med denne:
If me.newrecord = True then Me.talfelt = DMax("[talfelt]", "tabel") + 1 end if
I dette tilfælde får tabellens primære nøgle (talfelt) tildelt en værdi, der er increased med 1 i forhold til max værdi af talfelt i tabellen, men kun hvis det er en ny post.
Det jeg mente var id numre i en forespørgsel,der kommer fra et autonummerfelt i en tabel. Problemet er nok, at jeg ikke udtrykker mig klart nok, det jeg mener er, at hvis jeg har 50 poster med fem forskellige registreringsnumre i en forespørgsel, kan jeg vel gruppere disse ved at gruppere på flyets ID no, hvilket jo er et autonummer fra "TblAircraftInformation, eller hvad?
"gruppere på flyets ID no, hvilket jo er et autonummer fra "TblAircraftInformation, eller hvad?"
Afhænger af, hvordan dine relationer er. Hvis flyets ID NO er relateret til et nummer i andre tabeller der er det samme som ID NO, kan du vel blot indtaste et kriterie i din forespørgsel der begrænser udtrækket til eet ID NO med relaterede poster fra andre tabeller.
Forespørgslen "QryC172ProductionControlledItemsImplement", som formularen "FrmC172ProduktionControlledItemsImplement" refererer til, indeholder 3 tabeller. "TblAircraftInformation" som bl.a. indeholder et Autonummerfelt og feltet "AC Reg" som er relateret til feltet "AC Reg" i tabellen "TblC172ProductionControlledItemsImplement" som også har et Autonummerfelt og desuden et felt "AMTSNumber" som er relateret til feltet "AMTSNumber" i tabellen "TblProductionControlledItems" som også har et Autonummerfelt
Jeg går ud fra at disse felter indeholder samme værdier. Så jeg forstår ikke helt dit problem med autonumrerne. Glem dem og grupper efter AC REG eller AMTSNumber.
Nu får du en ny linie (Totaler) i forespøgselsgitteret. Nu kan du under hvert enkelt felt bestemme om du vil gruppere eller f.eks. tælle poster.
Hvis du vil lave en main med tilhørende underformluar (sub), kan du lave en forespørgsel med kun eet eneste felt. En underformular tager du fra værktøjskassen og opretter overordnede og underordnede felter.
Ja det lykkedes så langt som at få sorteret så kun den sidste post fra hver registrering med de nødvendige oplysninger, men formularen låser så der ikke kan indtastes flere poster, nogle gode råd efterlyses.
"men formularen låser " Så er det vel heller ikke muligt at rette i eksisterende data. I så fald er det dine relationer der er forkerte. Kontroller typen af relationer.
Prøv evt. at se i forespørgslen, om det er muligt at rette i poster / oprette nye poster. Fejlen ligger givetvis her, og før den er rettet i forespørgslen nytter det ikke noget at arbejde videre i formularen.
ja, det er der problemet ligger, men som sagt tidligere er jeg ikke nogen høg på dette område. Jeg forsøger med forskellige joins så skal det nok lykkes ellers vender jeg tilbage. Læg lige et svar.
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.