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
                       ...

1 respuesta

Respuesta
1
Te sugiero la siguiente modificación para el sql
sql = "select * from QTY_PLANTA_DIA where FECHA = " & fecha1
Reemplazar por
sql = "select * from QTY_PLANTA_DIA where FECHA = #" & format(fecha1,"mm/dd/yyyy") & "#"
Como el campo es fecha el formato esta predeterminado por la configuración regional, ademas si la fecha de la tabla Qty_planta_dia almacena también la hora talvex tengas que poner el format también a este campo
Finalmente ya pude resolver este problema y efectivamente lo había echo así como me lo surgieres, te agradezco mucho tu ayuda... excelente..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas