• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Database macro

Status
Niet open voor verdere reacties.

Wizwat

Gebruiker
Lid geworden
14 aug 2006
Berichten
31
Hallo,

Ik wil dmv een knop op Blad 2 het volgende doen:
1. Op blad 1 alles selecteren en wissen.
2. Op blad 1 een database importeren
3. Terugkeren naar Blad 2.

Als ik een macro aanmaak gaat alles goed. Echter als ik deze Macro vervolgens onder een knop plak 'loopt' de macro niet meer. Het gaat mis bij de rode tekst. De rest lopt vlg mij wel.

Zie hier de code:
Private Sub CommandButton1_Click()
Sheets("Blad1").Select
Cells.Select
Selection.ClearContents

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Program Files\Intrac\merge\;Mode=Share Deny Write;Exte" _
, _
"nded Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=" _
, _
"18;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Data" _
, _
"base Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=" _
, "False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), _
Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("11_08")
.Name = "11_08"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "C:\Program Files\Intrac\merge\11_08.DBF"
.Refresh BackgroundQuery:=False
End With
Sheets("Blad2").Select



Is er iemand die uitkomst kan bieden?

Alvast dank.
 
Hoi Wizwat,

Vreemde plek om fout te gaan, het enige wat je daar doet is alles selecteren, en leeg maken. Je kunt daar volgens mij alleen een foutmelding op krijgen als je je werkblad beveiligd hebt.


Wat voor een foutmelding krijg je precies?

Suc6
 
Behalve dat het korter kan (en belangrijk: je hoeft de cellen niet te selecteren), zie ik niet zo goed in waarom het niet werkt.

Probeer eens met

Code:
Sheets("Blad1").Cells.ClearContents

Wigi
 
... zie ik niet zo goed in waarom het niet werkt.

Blad1 is per toeval toch geen grafiekenblad? Ik bedoel daarmee: een werkblad met enkel 1 grafiek in (zie Locatie bij elke gewone grafiek).

Wigi
 
Ik snap ook niet zo goed waarom het fout gaat.

Wigi, ik zal Sheets("Blad1").Cells.ClearContents een proberen.
 
Helaas, het werkt nog steeds niet. In mijn oorspronkelijke code (zoals boven) krijg ik de volgende foutmelding:

Fout 1004 tijdens uitvoering
Methode Select van klasse is mislukt


Toch raar, het zou moeten werken. Het blad is niet beveiligd en het andere blad is geen grafiek.

:confused:
 
Kan je (een deel van) het bestand hier plaatsen? Gezipt.
 
Zie bijgaande zip file.

Het is een lege werksheet met op tab 2 een knop waarachter de code zit.

Geen idee waar het hem in zit.:mad:
 

Bijlagen

Hoi Wizwat,

Verander Cells.Select in Excel.Cells.Select.

Weet niet waarom het zonder niet werkt maar ach, een oplossing is een oplossing :)

Suc6
 
Laatst bewerkt:
Een ander soort knop doet soms wonderen.

Hopelijk werkt het bij jou.
 

Bijlagen

Laten we de oplossing van deze vraag samenvatten als:

gebruik de knop die LucB bedoelt, samen met de code:

Code:
Sheets("Blad1").Cells.ClearContents

Wigi
 
Weer wat geleerd :D

Helemaal geweldig, het werkt subliem.

Dank LucB, Wigi en Spiderman!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan