Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Error: 381 El subíndice está fuera del intervalo

123 views
Skip to first unread message

Gonzalo García

unread,
May 14, 2009, 10:52:01 AM5/14/09
to
Buenas gente, aca devuelta con problemas con mi base de datos. Me parece que
para la proxima me cambio a ADO definitivamente y .net. Les comento, a ver si
alguien tiene idea;
estoy consultando una base de datos atraves de un FLexGrid. Y el problema
que tengo es que cuando consulto aparentemente un registro que no existe me
salta este error "Error: 381 El subíndice está fuera del intervalo".
Tranquilamente podria poner un ManejadorDeErrores y mandar un mensaje al
usuario del tipo "El registro no existe", pero mi duda está en que yo tengo
entendido que cuando no encuentra el registro salta el error "Error: 30009
valor de fila no válido", y NO el 381. Tambiém me sucede que me salta el
error con registros que sí existen. En fin, les agradeceria si me dan una
mano. Aca les mando un poco de codigo;

Private Sub cmdBuscar_Click()

On Error GoTo ManejoDeError


msgResultado.Enabled = True

Dim strSQL As String

strSQL = "SELECT * FROM DatColegio WHERE "

Select Case cboBuscar.Text

Case "IDPrimary" '* IDPrimary = strSQL = strSQL &
"IDPrimary LIKE '*" & txtBuscar.Text & "'"
Case "IDSecundary"
strSQL = strSQL & "IDSecundary LIKE '*" & txtBuscar.Text & "*'"
Case "Nombre"
strSQL = strSQL & "Nombre LIKE '*" & txtBuscar.Text & "*'"
Case "Dirección1"
strSQL = strSQL & "Dirección1 LIKE '*" & txtBuscar.Text & "'"
Case "Dirección2"
strSQL = strSQL & "Dirección2 LIKE '*" & txtBuscar.Text & "'"
Case "Ciudad"
strSQL = strSQL & "Ciudad LIKE '*" & txtBuscar.Text & "'"
Case "CP"
strSQL = strSQL & "CP='" & txtBuscar.Text & "'"
Case "Provincia"
strSQL = strSQL & "Provincia LIKE '*" & txtBuscar.Text & "'"
End Select

datOrigen.RecordSource = strSQL


Call AjustarColumnas

Exit Sub

ManejoDeError:

Select Case Err.Number


Case 30009
MsgBox "No existe ningún campo con ese valor!",
vbApplicationModal + vbOKOnly + vbCritical, "Mensaje del sistema"
msgResultado.Enabled = False
Case Else
MsgBox "Error: " & Err.Number & " " & Err.Description

End Select

End Sub


Desde ya muchisimas gracias.

Gonzalo García

SPROCOM Software

unread,
May 14, 2009, 9:29:49 PM5/14/09
to
Hola No tiene nada que ver con la base de datos,
-------------tomado de la ayuda MSDN ---------------
El �ndice de la matriz de propiedades no es v�lido (Error 381)
Se est� utilizando un valor inadecuado para un �ndice de matriz de
propiedades. Este error tiene la siguiente causa y soluci�n:

a.. Intent� establecer un �ndice de matriz de propiedades a un valor fuera
de su intervalo permisible.
Cambie el valor del �ndice de la matriz de propiedades a un valor v�lido.
Por ejemplo, el valor de �ndice de la propiedad List para un ListBox debe
estar entre 0 y 32.766.

-------------------------------------
De algun modo estas indicando algun .col o .row del flexgrid mas alla de l
rango que tienes
ejemplo:
flexgrid.cols = 5
cuando asignas a col del flexgrid un numero mayor
flexgrid.col = 7
te salta el error.
Revisa tu codigo


"Gonzalo Garc�a" <Gonzal...@discussions.microsoft.com> escribi� en el
mensaje news:8921DE08-01D6-44CA...@microsoft.com...


> Buenas gente, aca devuelta con problemas con mi base de datos. Me parece
> que
> para la proxima me cambio a ADO definitivamente y .net. Les comento, a ver
> si
> alguien tiene idea;
> estoy consultando una base de datos atraves de un FLexGrid. Y el problema
> que tengo es que cuando consulto aparentemente un registro que no existe
> me

> salta este error "Error: 381 El sub�ndice est� fuera del intervalo".


> Tranquilamente podria poner un ManejadorDeErrores y mandar un mensaje al

> usuario del tipo "El registro no existe", pero mi duda est� en que yo

> tengo
> entendido que cuando no encuentra el registro salta el error "Error: 30009

> valor de fila no v�lido", y NO el 381. Tambi�m me sucede que me salta el
> error con registros que s� existen. En fin, les agradeceria si me dan una


> mano. Aca les mando un poco de codigo;
>
> Private Sub cmdBuscar_Click()
>
> On Error GoTo ManejoDeError
>
>
> msgResultado.Enabled = True
>
> Dim strSQL As String
>
>
>
> strSQL = "SELECT * FROM DatColegio WHERE "
>
> Select Case cboBuscar.Text
>
> Case "IDPrimary" '* IDPrimary = strSQL = strSQL &
> "IDPrimary LIKE '*" & txtBuscar.Text & "'"
> Case "IDSecundary"
> strSQL = strSQL & "IDSecundary LIKE '*" & txtBuscar.Text & "*'"
> Case "Nombre"
> strSQL = strSQL & "Nombre LIKE '*" & txtBuscar.Text & "*'"

> Case "Direcci�n1"
> strSQL = strSQL & "Direcci�n1 LIKE '*" & txtBuscar.Text & "'"
> Case "Direcci�n2"
> strSQL = strSQL & "Direcci�n2 LIKE '*" & txtBuscar.Text & "'"


> Case "Ciudad"
> strSQL = strSQL & "Ciudad LIKE '*" & txtBuscar.Text & "'"
> Case "CP"
> strSQL = strSQL & "CP='" & txtBuscar.Text & "'"
> Case "Provincia"
> strSQL = strSQL & "Provincia LIKE '*" & txtBuscar.Text & "'"
> End Select
>
> datOrigen.RecordSource = strSQL
>
>
> Call AjustarColumnas
>
> Exit Sub
>
> ManejoDeError:
>
> Select Case Err.Number
>
>
> Case 30009

> MsgBox "No existe ning�n campo con ese valor!",


> vbApplicationModal + vbOKOnly + vbCritical, "Mensaje del sistema"
> msgResultado.Enabled = False
> Case Else
> MsgBox "Error: " & Err.Number & " " & Err.Description
>
> End Select
>
>
> End Sub
>
>
> Desde ya muchisimas gracias.
>

> Gonzalo Garc�a


0 new messages