como traer informacion de una db access

11/01/2005 - 18:14 por Ricardo | Informe spam
Hola buenos dias
tengo un libro en excel que metrae informacion de access
este es el codigo
Sub Macro1()
Cells.Clear

With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=MS Access
Database;DBQ=Z:\PRO\produccion2.mdb;DefaultDir=Z:\PRO;Driv
erId%;FIL=MS Access;MaxBufferSize 48;PageTimeout=5;" _
, Destination:=Range("B3"))
.CommandText = Array( _
"SELECT Historia.id, Historia.maquina,
Historia.moldura, Historia.cv, Historia.nombre,
Historia.fechainicio, Historia.fechafin,
Historia.proceso, Historia.sistema" & Chr(13) & "" & Chr
(10) & "FROM `Z:\PRO\produccion2`.Historia Hi" _
, "storia Where(Historia.moldura = 1267002)")'***
AQUI PONGO QUE MOLDURA QUIERO TRAER
.Name = "Query from MS Access Database"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Range("B3").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
'ESTARIA MEJOR SI PONEMOS UN CONTADOR
****************************
If Range("E4").Value = 0 Then
Range("E4").Value = "Cristalino"
AdjustColumnWidth = True
End If
'*****************************************************
***********
Columns("E:E").EntireColumn.AutoFit
End Sub

En la parte que puse esto Where(Historia.moldura =
1267002)")'*** AQUI PONGO QUE MOLDURA QUIERO TRAER
Esto yo no quiero tenerlo en el codigo quiero asignarle
una celda especifica o un textbox en el cual se teclee
directo en la hoja y al pulsar un boton me traiga la
informacion de esa moldura.
¿Como podria hacer esto?
espero haberme dado a entender.
Saludos..y Gracias por su ayuda
rickyhdz_1@hotmail.com extjrhern@vitro.com
 

Leer las respuestas

#1 KL
12/01/2005 - 01:25 | Informe spam
Ricardo,

Prueba introducir una variable q coja el valor de la celda q especifiques.
Por ejemplo:

Dim CodigoMoldura as String
CodigoMoldura =Sheets("Hoja1").Range("A1")

'aqui va tu codigo hasta el ultimo miembro
'de la matriz q pondrias asi:

..., "storia Where(Historia.moldura = " & CodigoMoldura & ")")

'sigue tu codigo

Saludos,
KL

"Ricardo" wrote in message
news:001a01c4f801$12149110$
Hola buenos dias
tengo un libro en excel que metrae informacion de access
este es el codigo
Sub Macro1()
Cells.Clear

With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=MS Access
Database;DBQ=Z:\PRO\produccion2.mdb;DefaultDir=Z:\PRO;Driv
erId%;FIL=MS Access;MaxBufferSize 48;PageTimeout=5;" _
, Destination:=Range("B3"))
.CommandText = Array( _
"SELECT Historia.id, Historia.maquina,
Historia.moldura, Historia.cv, Historia.nombre,
Historia.fechainicio, Historia.fechafin,
Historia.proceso, Historia.sistema" & Chr(13) & "" & Chr
(10) & "FROM `Z:\PRO\produccion2`.Historia Hi" _
, "storia Where(Historia.moldura = 1267002)")'***
AQUI PONGO QUE MOLDURA QUIERO TRAER
.Name = "Query from MS Access Database"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Range("B3").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
'ESTARIA MEJOR SI PONEMOS UN CONTADOR
****************************
If Range("E4").Value = 0 Then
Range("E4").Value = "Cristalino"
AdjustColumnWidth = True
End If
'*****************************************************
***********
Columns("E:E").EntireColumn.AutoFit
End Sub

En la parte que puse esto Where(Historia.moldura 1267002)")'*** AQUI PONGO QUE MOLDURA QUIERO TRAER
Esto yo no quiero tenerlo en el codigo quiero asignarle
una celda especifica o un textbox en el cual se teclee
directo en la hoja y al pulsar un boton me traiga la
informacion de esa moldura.
¿Como podria hacer esto?
espero haberme dado a entender.
Saludos..y Gracias por su ayuda

Preguntas similares