se aproducido el error 1004 en tiempo de ejecucion error general de odbc

13/09/2006 - 17:25 por MOY | Informe spam
Hola que tal soy Moises y tengo un problema con una macro me aparece el
" error 1004 en tiempo de ejecucion error general de odbc" estoy
haciendo una consulta a una base de datos

el error me aparece en la liea con el codigo .Refresh
BackgroundQuery:=False


no se si algien me pueda ayudar tengo excel 2003?????????????????

pienso que puede ser el tipo de variable que asigno a "dato" por que
corror la macro sin el inputbox y escribo un valor directo en la parte
de la consulta (HojaResolucion.CasoID35) y si se ejecuta la macro.



Sub Consultaok()

Dim dato As Integer

dato = InputBox("Introduce No. ID")

With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=MS Access
Database;DBQ=Y:\AdmCobro.mdb;DefaultDir=Y:;DriverId%;FIL=MS
Access;MaxBufferSize 48;PageTimeout=5;;UID=admin;pwd=MADexM" _
, Destination:=Range("L2"))
.CommandText = Array( _
"SELECT HojaResolucion.CasoID, HojaResolucion.Deudor.Nombre,
HojaResolucion.Direccion, HojaResolucion.CIUDAD, HojaResolucion.ESTADO,
HojaResolucion.CodigoRef, HojaResolucion.CodigoCaso, HojaResolucion." _
, _
"DireccionGarantia, HojaResolucion.EdoGarantia,
HojaResolucion.ValorGarantia, HojaResolucion.FechaGarantia,
HojaResolucion.Hoja_UPB.DimNombreCampo,
HojaResolucion.Hoja_UPB.DimValorCampoTexto, HojaResol" _
, _
"ucion.Hoja_BalanceL.DimNombreCampo,
HojaResolucion.Hoja_BalanceL.DimValorCampoTexto,
HojaResolucion.Hoja_Abogado.DimNombreCampo,
HojaResolucion.Hoja_Abogado.DimValorCampoTexto,
HojaResolucion.Hoja_Eta" _
, _
"Juridica.DimNombreCampo,
HojaResolucion.Hoja_EtaJuridica.DimValorCampoTexto,
HojaResolucion.ÚltimoDeComentarioManual,
HojaResolucion.Empresa.Nombre" & Chr(13) & "" & Chr(10) & "FROM
`Y:\AdmCobro`.HojaResolucion HojaResolucion" & Chr(13) & "" & Chr(10) &
"W" _
, "HERE (HojaResolucion.CasoID='" & dato & "')")
.Name = "Consulta desde MS Access Database_9"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False

End With

End Sub


GRACIAS.
 

Leer las respuestas

#1 Héctor Miguel
14/09/2006 - 08:30 | Informe spam
hola, Moises !

... tengo un problema con una macro me aparece el "error 1004 en tiempo de ejecucion error general de odbc"
...haciendo una consulta a una base de datos el error me aparece en la liea con el codigo .Refresh BackgroundQuery:=False
... pienso que puede ser el tipo de variable que asigno a "dato" por que corror la macro sin el inputbox
y escribo un valor directo en la parte de la consulta (HojaResolucion.CasoID35) y si se ejecuta la macro...



1) estas declarando la variable 'dato' como de tipo Integer
[tipo de datos que es 'respetado' por el inputbox asumiendo que el usuario introduce solo valores numericos] ;)

2) [sin embargo]... en la parte de codigo donde 'provees' el valor de la variable a la construccion de la cadena de consulta...
estas delimitando la variable entre comillas simples: -> ... (HojaResolucion.CasoID='" & dato & "')
lo que esta convirtiendo el valor numerico [tipo de datos Integer] a cadena de textos [tipo de datos String]

-> prueba a eliminar las comillas simples... -> ... (HojaResolucion.CasoID=" & dato & ")

saludos,
hector.

__ fracciones el codigo expuesto __
Sub Consultaok()
Dim dato As Integer
dato = InputBox("Introduce No. ID")
[... ...]
`Y:\AdmCobro`.HojaResolucion HojaResolucion" & Chr(13) & "" & Chr(10) & "W" _
, "HERE (HojaResolucion.CasoID='" & dato & "')")
[... ...]

Preguntas similares