Búsqueda de registros > o < y llenar tabla
Hola a todos.
Planteo mi problema.
Tengo un formulario sin vincularlo a ninguna tabla y en el he insertado un subformulario llamado retrabajos basado en una tabla del mismo nombre.
En el formulario 2 botones de comando y 3 cajas de texto.
CmdBuscar
CmdNuevaBusqueda
TxtLongitudMayor
TxtBarril
TxtLongitudMenor
Lo que pretendo hacer es lo siguiente meter los datos en las cajas de texto, TxtBarril (siempre tendré que meter un dato en esta caja para realizar la búsqueda en una tabla llamada Localizaciones maestras),TxtLongitudMayor buscar los valores mayores a "POR" longitud y si es en TxtLongitudMenor hacer lo inverso valores menores a "POR" longitud, esto no se como hacerlo?. Lo que he logrado hasta ahora es buscar los valores que meto en el TxtBarril y TxtLongitudMayor o TxtLongitudMenor y llenar la tabla retrabajos pero no lo he logrado del todo bien. Lo digo por lo siguiente ejemplo.
TxtLongitudMayor TxtBarril TxtLongitudMenor
5000 M3130104
Me llena la tabla retrabajos si, pero con todos los registros que tengan el barril M3130104 y con todas sus longitudes. Y como quiero que me quede es así:
TxtLongitudMayor TxtBarril TxtLongitudMenor
5000 M3130104
Tabla retrabajos
Longitud Barril
9000 M3130104
7400 M3130104
5500 M3130104
5200 M3130104
Si no llegase encontrar un valor > o < que me de un mensaje.
Pego el código que tengo en el CmdBuscar.
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim vBarril As String
Dim vLnthMayor As String
Dim vLnthMenor As String
Dim MiSql As String
Set dbs = CurrentDb
MiSql = "SELECT [Localizaciones Maestras].[Familia],"
MiSql = MiSql & " [Localizaciones Maestras].[Mnbr],"
MiSql = MiSql & " [Localizaciones Maestras].[Ship Final],"
MiSql = MiSql & " [Localizaciones Maestras].[Leadcode Actual],"
MiSql = MiSql & " [Localizaciones Maestras].P, [Localizaciones Maestras].N,"
MiSql = MiSql & " [Localizaciones Maestras].R,"
MiSql = MiSql & " [Localizaciones Maestras].[#R],"
MiSql = MiSql & " [Localizaciones Maestras].[Tipo De Cable],"
MiSql = MiSql & " [Localizaciones Maestras].[MnbrT],"
MiSql = MiSql & " [Localizaciones Maestras].PT,[Localizaciones Maestras].NT,"
MiSql = MiSql & " [Localizaciones Maestras].RT,"
MiSql = MiSql & " [Localizaciones Maestras].[#RT],"
MiSql = MiSql & " [Localizaciones Maestras].[Barril],"
MiSql = MiSql & " [Localizaciones Maestras].[Calibre],"
MiSql = MiSql & " [Localizaciones Maestras].[Longitud],"
MiSql = MiSql & " [Localizaciones Maestras].[Strip1],"
MiSql = MiSql & " [Localizaciones Maestras].[Term1],"
MiSql = MiSql & " [Localizaciones Maestras].[Id1],"
MiSql = MiSql & " [Localizaciones Maestras].[Comp1],"
MiSql = MiSql & " [Localizaciones Maestras].[Strip2],"
MiSql = MiSql & " [Localizaciones Maestras].[Term2],"
MiSql = MiSql & " [Localizaciones Maestras].[Id2],"
MiSql = MiSql & " [Localizaciones Maestras].[Comp2]"
MiSql = MiSql & " FROM [Localizaciones Maestras]"
'---PROCESO DE BÚSQUEDA Y DEFINICIÓN FINAL DE LA SQL---------------------------------------------------
vBarril = Nz(Me.TxtBarril.Value, "")
vLnthMayor = Nz(Me.TxtLongitudMayor.Value, "")
vLnthMenor = Nz(Me.TxtLongitudMenor.Value, "")
If vBarril & vLnthMayor & vLnthMenor = "" Then
MsgBox "No hay nada en los criterios de búsqueda " & vbCrLf & "llene los siguientes criterios..... " & vbCrLf & "Barril,Longitud Mayor o Longitud Menor", vbInformation, "Atención"
Exit Sub
End If
If vBarril = "" Then
MsgBox "No hay nada en el criterio " & vbCrLf & "barril a buscar es necesario " & vbCrLf & "para efectuar la búsqueda", vbInformation, "Atención"
Exit Sub
End If
If Val(Me.TxtBarril) <> 0 & (Me.TxtLongitudMayor) <> 0 Then
Dim vBarrilF As Variant
Dim vLnthMayorF As Variant
vBarrilF = DLookup("[Barril]", "Localizaciones Maestras", "[Longitud]= '" & vLnthMayorF & "'")
'Si encuentra valor define la Sql y salta a Proceso_Borrado
MiSql = MiSql & " WHERE [Localizaciones Maestras].[Barril]='" & vBarril & "'"
GoTo Proceso_Borrado
End If
If Val(Me.TxtBarril) <> 0 & (Me.TxtLongitudMenor) <> 0 Then
MsgBox "Ejecuta búsqueda", vbInformation, "Aviso"
End If
If Val(Me.TxtBarril) <> 0 & (Me.TxtLongitudMayor) = 0 & (Me.TxtLongitudMenor) = 0 Then
MsgBox "No hay nada en los criterios " & vbCrLf & "longitud mayor o longitud menor" & vbCrLf & "seleccione alguna longitud a buscar", vbInformation, "Aviso"
End If
Exit Sub
'----PROCESO DE BORRADO DE REGISTROS EN TABLA LOCALIZACIONTMP-----------------------------------------------
Proceso_Borrado:
Set rst = dbs.OpenRecordset("Retrabajos")
If rst.RecordCount = 0 Then GoTo Actualiza_Registros
'Borramos los registros
rst.MoveFirst
Do Until rst.EOF
rst.Delete
rst.MoveNext
Loop
'----ADICIÓN DE LOS REGISTROS ACTUALES-------------------------------------------------------------
Actualiza_Registros:
Dim rstSql As DAO.Recordset
Set rstSql = dbs.OpenRecordset(MiSql)
rstSql.MoveFirst
Do Until rstSql.EOF
With rst
.AddNew
.Fields("Familia").Value = rstSql.Fields("Familia").Value
.Fields("Mnbr").Value = rstSql.Fields("Mnbr").Value
.Fields("Ship Final").Value = rstSql.Fields("Ship Final").Value
.Fields("Leadcode Actual").Value = rstSql.Fields("Leadcode Actual").Value
.Fields("P").Value = rstSql.Fields("P").Value
.Fields("N").Value = rstSql.Fields("N").Value
.Fields("R").Value = rstSql.Fields("R").Value
.Fields("#R").Value = rstSql.Fields("#R").Value
.Fields("Tipo De Cable").Value = rstSql.Fields("Tipo De Cable").Value
.Fields("MnbrT").Value = rstSql.Fields("MnbrT").Value
.Fields("PT").Value = rstSql.Fields("PT").Value
.Fields("NT").Value = rstSql.Fields("NT").Value
.Fields("RT").Value = rstSql.Fields("RT").Value
.Fields("#RT").Value = rstSql.Fields("#RT").Value
.Fields("Barril").Value = rstSql.Fields("Barril").Value
.Fields("Calibre").Value = rstSql.Fields("Calibre").Value
.Fields("Longitud").Value = rstSql.Fields("Longitud").Value
.Fields("Strip1").Value = rstSql.Fields("Strip1").Value
.Fields("Term1").Value = rstSql.Fields("Term1").Value
.Fields("Id1").Value = rstSql.Fields("Id1").Value
.Fields("Comp1").Value =...