Búsqueda por fechas
Hola experto, tengo 2 días con un problema que no puedo resolver, espero y me puedas ayudar, se trata de lo siguiente, tengo dos tablas en los cuales cada tabla cuenta con un campo fecha, bueno, lo que yo hago es buscar en tabla 1 el primer registro y lo inserto en la tabla2, pero cuando saco una fecha de tabla1 y ya existe en tabla2, quiero que en un campo que se llama planta1, me aumente +1 y así sucesivamente, pero no me detecta si ya existe la fecha, mi .EOF y .BOF siempre están en TRUE, TE PONGO EL CÓDIGO HABER SI ME PUEDES AYUDAR, MUCHÍSIMAS GRACIAS,
Sub rqporplanta()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Dim sql As String
Dim planta As String
Dim fecha As Date, fecha1 As Date
Dim registros As Integer
'-------------- nuevos odjetos -----------------------------------------
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set cn = New ADODB.Connection
'---------------- CONNECTION ---------------------------------------------
cn.Open "provider=microsoft.jet.oledb.4.0;" & "data source=" & "C:\Users\Ruben\Desktop\excel\Requisition\reporte.mdb;"
rs.Open "example", cn, adOpenKeyset, adLockOptimistic, adCmdTable '----------OPEN TABLE example
'rs1.Open "QTY_PLANTA_DIA", cn, adOpenKeyset, adLockOptimistic, adCmdTable '--OPEN TABLE QTY_PLANTA_DIA
'----------------CICLO DE BUSQUEDAS ---------------------------------------
rs.MoveFirst
Do While Not rs.EOF
With rs
'.MoveFirst
fecha = .Fields("DATE")
planta = .Fields("PLANT")
fecha1 = DateValue(Format(fecha, "mm/dd/yyyy"))
End With
sql = "select * from QTY_PLANTA_DIA where FECHA = " & fecha1
rs1.Open sql, cn, adOpenKeyset, adLockPessimistic, adCmdText
rs2.Open "QTY_PLANTA_DIA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
registros = rs2.RecordCount
If registros > 0 Then
'--------------------Si la tabla ya tiene registros --------------------------------
With rs1
'.AddNew
'---------------------------------------------------------
temp = rs1.RecordCount
'------------------------------------------------------------
If rs1.EOF = True And rs1.BOF Then
'-------------------------------------------- si la fecha no existe en mi tabla QTY_PLANTA_DIA
'fech = .Fields("FECHA")
.AddNew
.Fields("FECHA") = fecha1
Select Case planta
Case 1
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
Case 3
.Fields("PLANTA3") = .Fields("PLANTA3") + 1
Case 4
.Fields("PLANTA4") = .Fields("PLANTA4") + 1
End Select 'fin del primer select case
.Update
Else
'--------------------------------------------- si la fecha ya existe solo agrega uno a la planta que corresponda
Select Case planta
Case 1
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
Case 3
.Fields("PLANTA3") = .Fields("PLANTA3") + 1
Case 4
.Fields("PLANTA4") = .Fields("PLANTA4") + 1
End Select '-----------------------------------------------------fin del segundo select case
.Update
End If '----------------------------------------------------------fin del primer if
End With '------------------------------------------------------------fin del primer with
Else '------------------------si la tabla esta bacia-----------------------------------
With rs1
.AddNew
.Fields("FECHA") = fecha1
Select Case planta
Case "1"
If .Fields("PLANTA1") = 0 Then
.Fields("PLANTA1") = 1
Else
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
End If
Case 3
If .Fields("PLANTA3") = 0 Then
.Fields("PLANTA3") = 1
...
Sub rqporplanta()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Dim sql As String
Dim planta As String
Dim fecha As Date, fecha1 As Date
Dim registros As Integer
'-------------- nuevos odjetos -----------------------------------------
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set cn = New ADODB.Connection
'---------------- CONNECTION ---------------------------------------------
cn.Open "provider=microsoft.jet.oledb.4.0;" & "data source=" & "C:\Users\Ruben\Desktop\excel\Requisition\reporte.mdb;"
rs.Open "example", cn, adOpenKeyset, adLockOptimistic, adCmdTable '----------OPEN TABLE example
'rs1.Open "QTY_PLANTA_DIA", cn, adOpenKeyset, adLockOptimistic, adCmdTable '--OPEN TABLE QTY_PLANTA_DIA
'----------------CICLO DE BUSQUEDAS ---------------------------------------
rs.MoveFirst
Do While Not rs.EOF
With rs
'.MoveFirst
fecha = .Fields("DATE")
planta = .Fields("PLANT")
fecha1 = DateValue(Format(fecha, "mm/dd/yyyy"))
End With
sql = "select * from QTY_PLANTA_DIA where FECHA = " & fecha1
rs1.Open sql, cn, adOpenKeyset, adLockPessimistic, adCmdText
rs2.Open "QTY_PLANTA_DIA", cn, adOpenKeyset, adLockOptimistic, adCmdTable
registros = rs2.RecordCount
If registros > 0 Then
'--------------------Si la tabla ya tiene registros --------------------------------
With rs1
'.AddNew
'---------------------------------------------------------
temp = rs1.RecordCount
'------------------------------------------------------------
If rs1.EOF = True And rs1.BOF Then
'-------------------------------------------- si la fecha no existe en mi tabla QTY_PLANTA_DIA
'fech = .Fields("FECHA")
.AddNew
.Fields("FECHA") = fecha1
Select Case planta
Case 1
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
Case 3
.Fields("PLANTA3") = .Fields("PLANTA3") + 1
Case 4
.Fields("PLANTA4") = .Fields("PLANTA4") + 1
End Select 'fin del primer select case
.Update
Else
'--------------------------------------------- si la fecha ya existe solo agrega uno a la planta que corresponda
Select Case planta
Case 1
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
Case 3
.Fields("PLANTA3") = .Fields("PLANTA3") + 1
Case 4
.Fields("PLANTA4") = .Fields("PLANTA4") + 1
End Select '-----------------------------------------------------fin del segundo select case
.Update
End If '----------------------------------------------------------fin del primer if
End With '------------------------------------------------------------fin del primer with
Else '------------------------si la tabla esta bacia-----------------------------------
With rs1
.AddNew
.Fields("FECHA") = fecha1
Select Case planta
Case "1"
If .Fields("PLANTA1") = 0 Then
.Fields("PLANTA1") = 1
Else
.Fields("PLANTA1") = .Fields("PLANTA1") + 1
End If
Case 3
If .Fields("PLANTA3") = 0 Then
.Fields("PLANTA3") = 1
...
1 Respuesta
Respuesta de jeddy
1