Avatar billede tingholm Mester
08. juli 2016 - 13:48 Der er 6 kommentarer og
2 løsninger

Slette tabel som vises i Formular

Jeg har en tabel med Følgende kolonner: Løbenr, Titel, antal
Jeg har en formular med div knapper og textfelter samt en underformular med en oversigt over ovenstående tabel.

Når jeg importerer en ny datafil skal tabellen slettes og en ny oprettes (vigtigt da 'løbenr' er Automummer og skal starte forfra)
Men da den jo vises i min formular kan jeg ikke slette den.

Kan jeg lave så formularen bare viser et øjebliksbillede fra når formularen åbnes (som jeg så kan requery efter behov)?
Eller er eneste mulighed at lukke formularen under importen og så åbne den igen bag efter? Det virker ikke særlig elegant :-/
Avatar billede terry Ekspert
08. juli 2016 - 14:21 #1
Not sure what you mean with this
"Kan jeg lave så formularen bare viser et øjebliksbillede fra når formularen åbnes (som jeg så kan requery efter behov)?"


I was thinking you  could use something like this.

Me.RecordSource = ""
DoCmd.RunSQL "Drop Table indTabel"

DoCmd.TransferText acImportDelim, "importspec", "indTabel", "c:\data\testfil.txt"

Me.RecordSource = "IndTabel"

.....
Avatar billede Slettet bruger
09. juli 2016 - 11:24 #2
eller erstattet dit løbenummer med integer, og manuelt tildele en løbenummer - så slipper du for at slette og oprette en ny tabel hver gang
Avatar billede terry Ekspert
09. juli 2016 - 11:59 #3
not easy to do that Thomas if file is imported. You would need to import first and then loop through records to give them an ID.

But one could ask why a unique ID is required in the first place, or why is it necessary to start from 1 again? If all records can be deleted/created again then a unique ID doesn't seem to have any significance!
Avatar billede tingholm Mester
11. juli 2016 - 12:01 #4
Jeg prøvede at sætte en anden recordSource, men det er en subformular i min formular og kunne ikke få den til at makke ret.

ingen af de to forsøg virkede:
me.subformular.RecordSource = ""
Forms.subformular.Recordsource = ""

Jeg gør i stedet:
DoCmd.RunSQL "DROP TABLE indTabel"
DoCmd.RunSQL "CREATE TABLE indTabel (id AUTOINCREMENT PRIMARY KEY, ....)"
DoCmd.TransferText acImportDelim, "importspec", "indTabel", "c:\data\testfil.txt"
DoCmd.RunSQL "DELETE * FROM Oversigt"
DoCmd.RunSQL "INSERT INTO Oversigt (felter) SELECT count(titler) FROM indTabel"
me.subformular.Requery
Avatar billede tingholm Mester
11. juli 2016 - 12:04 #5
Forms.subformular.Recordsource = ""    (Object doesn't support this property or method)
Me.subformular.Recordsource = ""    (Method or data member not found)
Avatar billede terry Ekspert
11. juli 2016 - 12:36 #6
How do you drop the table if its being used in a form?

Doesn't  your importspec create the table with autonumber? I wouldn't have thought it necessary to use a create statement.


If your having problems referring to a sub forms recordsource then this might hlep

http://access.mvps.org/access/forms/frm0031.htm
Avatar billede tingholm Mester
11. juli 2016 - 15:07 #7
Min form brugte tabellen 'Oversigt' som var en opsummering af indTabel.

Men har lavet det om efter jeg kiggede på dit link til
Me!subform.Form.RecordSource = ""
import og lav ting
Me!subform.Form.RecordSource = "Tabel"
Avatar billede terry Ekspert
11. juli 2016 - 16:20 #8
:-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester