Jeg kører dagligt en makro, der sletter min gamle tabel og samtidig opretter en ny tabel via forespørgsel - tabeloprettelse. I den forebindelse vil jeg gerne have, at når jeg kører forepørgselen, at den samtidig definerer to felter som primær nøgler. Er det muligt at gøre dette i en forespørgsel som opretter en tabel.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Tak for svar begge. Jeg ønsker ikke at bruge den føste mulighed, idet jeg sletter ca. 1,4 millioner linjer, hvorfor jeg får en fejlmeddelse om at jeg ikke fortryde slet. Jeg har faktisk i alt 4 tabeller, som jeg opdaterer daglige, derfor er det lidt irriterende med denne fejl. Jeg har også kigget på svar 2. Men det jeg ønsker er at rette min forespørgelse således at den definerer to præmære felter. Min forespøgsel er en ganske almindelige forespørgsel ikke noget VBA. Men måske jeg kan rette det i SQL designet. Jeg ved bare ikke hvordan og hvor jeg evt. kan indsætte en constraint statement, der definerer to primære felter. Jeg er endnu ikke en arfaren Access-bruger. Håber jeg kan få et lidt mere specifikt svar. Men tak for jeres tlbagemeldinger indtil videre.
Du kan ikke have "to primære felter" - en table har EN primær nøgle per definition. Denne kan så være sammensat af to felter.
"Fejlmeddelelsen" om at ikke kunne fortryde slet kan slås fra vha docmd.SetWarnings(False) og efterfølgende SetWarnings(True)
Access er ikke en full-blown database, så at slette objekter når det ikke er nødvendigt kan til tider føre til korruption af databasen. Derfor er det bedre at slette rækker i en tabel, fremfor hele tabellen.
Den forespørgsel til at lave om på tabellen kan du ikke lave i QBE-griddet men skal definere den i VBA.
Hej Neoman. Din løsning virker perfekt med docmd.SetWarnings(False) og efterfølgende SetWarnings(True). Jeg sletter nu kun rækkerne og ikke tabelen. Jeg slipper for servicemeddlesen når jeg kører den. Bare til info grunden til at jeg har 2 felter defineret som primærnøgle er jeg dagligt indlæser aktiekurser bestående af bla.a et symbol og en dato. Jeg bruger således både symbol og dato til finde en specifik aktiekurs. Mange tak for alle svar. Jeg formoder at Neoman lige skal lige et svar, så jeg kan give point.
Hej Jensen363. Det er fuldstændig korrekt. Men fordi jeg er stadig nybegynder i Access valgte jeg neoman, fordi hans løsning var meget specifik med docmd.SetWarnings(False) og efterfølgende SetWarnings(True). Måske var det oplagt for lidt mere erfarne access bruger, at du også henviste til det, men jeg havde aldrig hørt om kommandoen. Men endnu engang tak for dit og andres svar. Super med så hurtig tilbagemelding.
Den plads de slettede rækker optog, bliver IKKE frigivet før databasen bliver komprimeret. Det kan du gøre i funktioner > databasefunktioner > komprimer og reparer.
Du kan sætte db til at komprimere sig selv ved lukning i funktioner > indstillinger > generelt > komprimer ved lukning.
Tak Jensen363 for din slette løsning, den ser noget mere elegant ud end min. Mugs jeg allerede sat min database til at komprimere hver gang jeg lukker den. Men tak fordi du nævner det.
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.