[ DenkoB @ 10.02.2010. 00:34 ] @
Imam tabele koja se generise nakon importa excel file u Acces. Istu zelim obrisati nakon importa "Sheet$_ImportError".
Skinuo sam par rijesenja sa weba ali ni jedno mi ne radi. Nakon kopiranja coda u Modul/Save/Run dobijem poruku o greski "Compile error: invalid outside procedure".

1. Code

Dim tbl As AccessObject
>
For Each tbl In CurrentData.AllTables
If tbl.Name Like "*_ImportError*" Then
DoCmd.DeleteObject acTable, tbl.Name
End If
Next tbl


2. Code

Dim intLoop As Integer

For intLoop = (CurrentData.AllTables.Count - 1) To 0 Step -1
If CurrentData.AllTables(intLoop).Name Like "*_ImportError*" Then
DoCmd.DeleteObject acTable, CurrentData.AllTables(intLoop).Name
End If
Next intLoop


Ako koristim opciju iz Macros "DeleteObjects" tabela se obrise ali ako je nema onda skripta stane i izbaci gresku.
Na webu sam naso par rjesenja ali svako od njih pravi isti problem.
Ili ja gresim prilikom kreiranja (vjerovatno) ili ima greska u samom kodu koju ja ne mogu otkriti.

Access 2003



[ Trtko @ 10.02.2010. 09:41 ] @
Recimo da si taj kod bacio u neku funkciju u modulu i da izbjegnes poruke o greski
moras gresku obraditi , pa bi to izgledalo ovako.

Function brisi_tabele()

on error goto greska

Dim intLoop As Integer

For intLoop = (CurrentData.AllTables.Count - 1) To 0 Step -1
If CurrentData.AllTables(intLoop).Name Like "*_ImportError*" Then
DoCmd.DeleteObject acTable, CurrentData.AllTables(intLoop).Name
End If
Next intLoop


exit function

greska:

err.clear
resume next

end function


funkciju pozivas sa CALL brisi_tabele


[ DenkoB @ 10.02.2010. 10:24 ] @
Ma bravo majstoreee, RADI.
Hvala,


Pod pitanje,
Mozeli se sad ovo napraviti da radi automatski svaki put kad se izađe Access baze tj. kad izlazim iz baze da se ovaj code automatski pokrene i obise tabele.
[ Trtko @ 10.02.2010. 10:42 ] @
pa moze

na on close glavne forme ili ako koristis dugme za izlaz iz baze
samo pozoves tu funkciju
[ DenkoB @ 10.02.2010. 11:11 ] @
Hvala
na vremenu