Visual Basic - Maxcro XLS - No me funciona desde VB.

Life is soft - evento anual de software empresarial
 
Vista:

Maxcro XLS - No me funciona desde VB.

Publicado por Elvis (21 intervenciones) el 18/12/2005 01:44:02
Holas amigos y amigas.

Estoy tratando de ejecutar un macro de excel desde me aplicacion en VB, el macro lo que hace es en excel hacer un import de un DB de Access.

EL Macro funciona en Excel, pero cuando lo copio y ejejcuto desde mi aplicion no hace nada.

Imagino que Algo debe tener que cambiar para que se ejecute correctamente.

Ademas necesito saber como puede hacer para que el nombre archivo( "Data Source=C:\Documents and Settings\Administrator\Escritorio\bla.mdb")
para que quede como variable y no como código duro.

El código que utilizo es el siguiente:




Sub Macro1()

'*** Inica Codigo que no incluye el macro de Excel

Dim MiExcel As Object 'en caso de que word no este abierto
On Error Resume Next 'revisar si word esta abierto
Set MiExcel = GetObject(, "Excel.application") 'si word no esta abierto entonces

If MiExcel Is Nothing Then
Set MiExcel = GetObject("", "Excel.Application")
End If

MiExcel.SheetsInNewWorkbook = 1
MiExcel.Workbooks.Add
MiExcel.Visible = True 'visible
'*** Finaliza Codigo que no incluye el macro de Excel

' tambien he probado con MiExcel.ActiveSheet.QueryTables.Add(Connection:=Array(.... pero tampoco funciona.

'codigo del macro.

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Documents and Settings\Administrator\Escritorio\bla.md" _
, _
"b;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Passwo" _
, _
"rd="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transa" _
, _
"ctions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Do" _
, _
"n't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("Cartera_credito")
.Name = "bla"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = _
"C:\Documents and Settings\Administrator\Escritorio\bla.mdb"
.Refresh BackgroundQuery:=False
End With

End Sub

GRacias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder