ADO FroM ACCESS TO EXCEL duda al inicio

18/08/2004 - 20:06 por JAVIER | Informe spam
A continuacion muestro el siguiente codigo donde mi duda
es porque la macro no inicia como sub marco() puesto que
adentro del parentisis se encuentran algo como variables?
al ejecutarla de excel me muestra en blanco el cuadro de
macros no me aparece para darle ejecutar? alguien me puede
explicar sobre este detalle, Gracias
Javier


Sub ADOImportFromAccessTable(DBFullName As String,
TableName As String, TargetRange As Range)-aqui

ADOImportFromAccessTable "c:\ControlLeche.mdb", "LecheNEta"
, Range("a1")
Dim cn As ADODB.Connection, rs As ADODB.Recordset,
intColIndex As Integer
Set TargetRange = TargetRange.Cells(1, 1)
' open the database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=" & _
DBFullName & ";"
Set rs = New ADODB.Recordset
With rs
' open the recordset
.Open TableName, cn, adOpenStatic,
adLockOptimistic, adCmdTable
' all records
'.Open "SELECT * FROM " & TableName & _
" WHERE [FieldName] = 'MyCriteria'", cn, , ,
adCmdText
' filter records

RS2WS rs, TargetRange ' write data from the
recordset to the worksheet

' ' optional approach for Excel 2000 or later
(RS2WS is not necessary)
' For intColIndex = 0 To rs.Fields.Count - 1 ' the
field names
' TargetRange.Offset(0, intColIndex).Value =
rs.Fields(intColIndex).Name
' Next
' TargetRange.Offset(1, 0).CopyFromRecordset rs '
the recordset data

End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
 

Leer las respuestas

#1 David Canales
19/08/2004 - 01:28 | Informe spam
El codigo deberia de estar asi:

Sub EjecutarConsulta()
ADOImportFromAccessTable "c:\ControlLeche.mdb", "LecheNEta", Range("a1")
End Sub

Sub ADOImportFromAccessTable(DBFullName As String, _
TableName As String, TargetRange As Range)

El resto de codigo

'Esta parte te la pongo para sugerirte que no utilices RS2WS (ponle apostrofe
adelante) y utilices la parte siguiente. Si usas excel 2000 en adelante no
necesitas el codigo de RS2WS (que es otro codigo aparte que no tienes aqui).

'RS2WS rs, TargetRange ' write data from the recordset to the worksheet

' optional approach for Excel 2000 or later(RS2WS is not necessary)
For intColIndex = 0 To rs.Fields.Count - 1 ' the field Names
TargetRange.Offset(0, intColIndex).Value rs.Fields(intColIndex).Name
Next
TargetRange.Offset(1, 0).CopyFromRecordset rs 'the recordset data

El resto de codigo

End Sub


Recuerda en el editor de VBA hacer check en Herramientas, Referencias, Microsoft
ActiveX Data Objects 2.x Library.


Saludos,

David Canales


"JAVIER" wrote in message
news:882f01c4854e$11754d60$
A continuacion muestro el siguiente codigo donde mi duda
es porque la macro no inicia como sub marco() puesto que
adentro del parentisis se encuentran algo como variables?
al ejecutarla de excel me muestra en blanco el cuadro de
macros no me aparece para darle ejecutar? alguien me puede
explicar sobre este detalle, Gracias
Javier


Sub ADOImportFromAccessTable(DBFullName As String,
TableName As String, TargetRange As Range)-aqui

ADOImportFromAccessTable "c:\ControlLeche.mdb", "LecheNEta"
, Range("a1")
Dim cn As ADODB.Connection, rs As ADODB.Recordset,
intColIndex As Integer
Set TargetRange = TargetRange.Cells(1, 1)
' open the database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=" & _
DBFullName & ";"
Set rs = New ADODB.Recordset
With rs
' open the recordset
.Open TableName, cn, adOpenStatic,
adLockOptimistic, adCmdTable
' all records
'.Open "SELECT * FROM " & TableName & _
" WHERE [FieldName] = 'MyCriteria'", cn, , ,
adCmdText
' filter records

RS2WS rs, TargetRange ' write data from the
recordset to the worksheet

' ' optional approach for Excel 2000 or later
(RS2WS is not necessary)
' For intColIndex = 0 To rs.Fields.Count - 1 ' the
field names
' TargetRange.Offset(0, intColIndex).Value > rs.Fields(intColIndex).Name
' Next
' TargetRange.Offset(1, 0).CopyFromRecordset rs '
the recordset data

End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

Preguntas similares