Avatar billede hlnviv Juniormester
11. maj 2010 - 13:49 Der er 11 kommentarer og
1 løsning

Komme af med S_GUID

Hej Eksperter

Har haft en replikeringsbar database som laver en ekstra kolonne i alle tabellerne som hedder S_GUID mit spørgsmål er om man kan komme af med S_GUID eller slette den nu da databasen ikke længere er en replikerings db. Helst uden at f. eks skulle lave en ny og flytte alle data over i.
Kan man måske kopier/klone sin tabel uden at tage S_GUID med?, og stadig beholde alle andre egenskaber som f. eks feltstørrelse og format osv.
Avatar billede terry Ekspert
11. maj 2010 - 14:56 #1
I would think that it is also the primary key, and if its used in relationships to other tables then it might be a VERY good idea to keep it.

If it isnt needed then you should be able to remove the field in design view. If it is the primary key then you coul dmake a new autonumber field (ling int) and make this the primary key.
Avatar billede hlnviv Juniormester
12. maj 2010 - 07:06 #2
Der er ikke primary key og når jeg prøver at slette den i design visning skriver den (Du kan ikke slettet feltet "s_GUID". Der er et systemfelt til replikering.)
(Brug en tabeloprettelsesforspørgsel til at oprette en ny tabel. der indeholder alle felterne i tabellen med undtagelse af systemfelterne.)
Avatar billede terry Ekspert
12. maj 2010 - 09:01 #3
you might fin dthis linkk usefull.

http://dfenton.com/DFA/Replication/index.php?title=FAQ


Look at
10: I have a replicated MDB and I don't want it to be replicated any more. What do I do?
Avatar billede hlnviv Juniormester
12. maj 2010 - 12:32 #4
Jeg havde læst det men som jeg skrev i (mit spørgsmål er om man kan komme af med S_GUID eller slette den nu da databasen ikke længere er en replikerings db. Helst uden at f. eks skulle lave en ny og flytte alle data over i)
Men kan forstå det kan man ikke i det du linker til skriver de man skal op rette ny db
Avatar billede terry Ekspert
13. maj 2010 - 09:57 #5
If Microsoft dont have that as a posibbility then I have to assume that you cant.
Avatar billede hlnviv Juniormester
13. maj 2010 - 13:03 #6
Oki tak alligevel det må jeg så acceptere jeg så må jeg den hårde vej i gennem en gang der er god tid til det
Avatar billede Slettet bruger
15. maj 2010 - 16:09 #7
Måske andre tilgange er mere liberale:

sql="alter table <tablename> drop column <columnname>"

currentdb.exe sql eller anvendelse af:

Function adoSql(sql, dbPath)
    With New ADODB.Connection
        .CursorLocation = adUseClient
        .Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
                "Persist Security Info=False;" & _
                "Data Source=" & dbPath
        .CommandTimeout = 0
        .Execute sql:
        End With
End Function
Avatar billede hlnviv Juniormester
19. maj 2010 - 07:45 #8
Hej ser interessant men er ikke helt hård til programmering skal det i et moduel eller hvordan gør jeg lige
Avatar billede Slettet bruger
20. maj 2010 - 19:27 #9
ja - funktionen skal i et standard modul
I immediate vinduet kan den så kaldes:

adoSql "alter table <tablename> drop column <columnname>","<full pathname of database>"

det der er citeret i hak parenteser skal erstattes med de anvendte navne

Det er ligegyldigt om funktionen afvikles med samme databaseprogramfil (.mdb fil) åben, som tabellen er beliggende i.

Jeg aner ikke om det gør en forskel mht. at slette replikerings id'er - men jeg erfarede en gang at adodb vejen kunne noget mere mht. afvikling af visse sql udtryk. (create table)

De 'normale' måder - currentdb.execte og docmd.runsql går over dao.
Avatar billede hlnviv Juniormester
21. maj 2010 - 13:24 #10
mit modul ser sådan ud men kan stadig ikke slette kolonne (S_GUID)

sql "alter table Udstyrstyper drop column s_GUID", "C:\Documents and Settings\hln\Skrivebord\2007031901.mdb"

CurrentDb.exe sql

Function adoSql(sql, dbPath)
    With New ADODB.Connection
        .CursorLocation = adUseClient
        .Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
                "Persist Security Info=False;" & _
                "Data Source=" & dbPath
        .CommandTimeout = 0
        .Execute sql:
        End With
End Function
Avatar billede hlnviv Juniormester
21. maj 2010 - 13:29 #11
men efter modulet er kørt ser det ud til der kommer andre fejl som om min knapper / genveje ikke virker mere ??
Avatar billede Slettet bruger
22. maj 2010 - 11:38 #12
De 3 linier, du i #10 har over funktionen - de skal IKKE være i modulet. Sådan set meget kreativt at opfatte det jeg skriver som noget magi der bare skal kastes ind - næste udfordring er at finde ud af hvorfor det ikke virker!

Jeg kan ikke komme rundt om vba programmering på nogen fyldestgørende måde - de rette kilder er bøger og tutorials på nettet - men en enkelt ting:

Når man, befindende sig i vba editoren, har skrevet noget kode, er det vigtigt, inden man forlader den: 'AT KOMPILERE'

menulinie->debug->compile i access 2000

Enhver syntaks fejl bliver raporteret og disse skal rettes inden man forlader vba editoren, ellers kan man i værdste fald godt vinke farvel til det den database.
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