Access - Problemas con RecordSet Access

 
Vista:
Imágen de perfil de CarlosR

Problemas con RecordSet Access

Publicado por CarlosR (2 intervenciones) el 03/10/2013 20:03:49
Buenos días. Saludos a todos. Mi caso es el siguiente. Tengo un formulario en Access y cuando ingreso un NumSerie; quiero hacer una búsqueda del mismo en la tabla ORDENES; si se encuentra el registro presentar en el mismo formulario, la ultima vez que fue introducido y su fecha. Este numserie puede ser introducido varias veces.

La cosa es que siempre me manda error 3265 - no se encuentra el elemento en esta colección. Esto solo pasa cuando encuentra el registro. Saludos desde Panamá y agradezco toda su ayuda.

+++ ES AQUI DONDE MANDA EL ERROR +++
AntCntInt = rst!Fields("Crt_Interno").Value

Aqui esta mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub Num_Serie_LostFocus()
 
Dim Nserie As String 'recibe valor de NvaSerie'
Dim AntCntInt As Integer 'Recibe el valor de la orden anterior'
Dim AntFecha As Date 'Recibe el valor de la fecha anterior'
Dim CadenaSql As String
Dim db As Database
Dim rst As Recordset
 
'Captura el valor de la Nva Serie Introducida'
Nserie = StrConv(Me.Num_Serie, 1)
 
Set db = CurrentDb()
 
'CadenaSql = ("Select Crt_Interno, Fecha_Ingreso From ORDENES Where ORDENES.Num_Serie = 'Forms!DEPSA_ORDENES!Num_Serie'")
CadenaSql = ("Select Num_Serie From ORDENES Where ORDENES.Num_Serie = '" & Nserie & "'")
Set rst = db.OpenRecordset(CadenaSql)
 
Do While Not rst.EOF
 
 rst.MoveFirst
 'rst.MoveLast
 Forms!DEPSA_ORDENES!Orden_Anterior = ""
 Forms!DEPSA_ORDENES!Fecha_RepAnt = ""
 
 If rst!Num_Serie = Forms!DEPSA_ORDENES!Num_Serie Then
    MsgBox "Valor existe y nva serie es: " & Nserie
 
    AntCntInt = rst!Fields("Crt_Interno").Value
    AntFecha = rst!Fields("Fecha_Ingreso").Value
 
    Forms!DEPSA_ORDENES!Orden_Anterior = AntCntInt
    Forms!DEPSA_ORDENES!Fecha_RepAnt = AntFecha
 End If
rst.MoveNext
'rst.MovePrevious
Loop
 
 rst.Close
 Set rst = Nothing
 
End Sub
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
sin imagen de perfil

Problemas con RecordSet Access

Publicado por deneg_nhj (348 intervenciones) el 04/10/2013 16:28:31
El mensaje dice "No existe el campo en el recordset".

Debes de incluirlo en SQL que armas aquí


1
CadenaSql = ("Select Num_Serie, Crt_Interno, Fecha_IngresoFrom ORDENES Where ORDENES.Num_Serie = '" & Nserie & "'")

Tambien el campo "Fecha_Ingreso"

Saludos!


Deneg_nhj
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con RecordSet Access

Publicado por jose (830 intervenciones) el 04/10/2013 16:44:02
valorando un poco por encima he visto varias cosas que me resultan raras

Dim AntCntInt As Integer esto no puede alcanzar mas alla de 0 a 255
por lo tanto si en AntCntInt = rst!Fields("Crt_Interno").Value si rst!Fields("Crt_Interno").Value
tiene un valor distinto te dará error


ORDENES.Num_Serie = '" & Nserie & "'"

de esto se debe de entender que ORDENES.Num_Serie es tambien un string


-----------------------------------------------------------------------------
esto aunque no afecta mucho es feo porque repite lo mismo tantas veces como numero de recordsets tenga la busqueda

Do While Not rst.EOF
rst.MoveFirst

......................

rst.MoveNext

Loop
rst.Close Set rst = Nothing End Sub

---------------

porque se supone que solo tiene que pasar una vez

if rst.EOF = true
rst.MoveFirst

........

end if
Loop
rst.Close Set rst = Nothing End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar