Visual Basic.NET - Modificar el valor de un campo según opciones

 
Vista:
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 06/12/2019 12:21:59
Tengo la siguiente base de datos en Access!

Table
Table2

Y con el siguiente formulario:


Form

Quisiera saber como harian ustedes para realizar lo siguiente:

1. Al insertar el primer registro el valor en el campo 'Nivel' debe ser NORMAL.
2. El campo 'Nivel' cambiara de NORMAL a AJUSTADA cuando dos de cinco lotes no se acepten consecuentemente.
3. De igual manera el campo "Nivel" cambiara de AJUSTADA a NORMAL cuando cinco lotes de manera consecutiva sean con 'Status' ACEPTADO.

Es un proyecto que estoy hacienda para una empresa, soy programador pero no doy con esa consulta. Puede alguien ayudarme con ello?
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 06/12/2019 18:54:06
Hola,

Como para tu precedente mensaje, pregunto cómo puedes registrar el cuento de modificación del status para cada registro ? Sin solución a este nivel, no podemos evolucionar.

Comprendes que tienes que contar los cambiados del Nivel y, a cada veces, tienes que verificar si hay 5 veces en continuación y si no, poner el contador a 0. Entre cada caso, tienes que registrar el resultado de la cuenta.

...
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 07/12/2019 15:52:48
Hola,

Veas como comprendo tu problema.
Para me, el campo CuentaStatu es necesario, si no existe, tienes que registrar los valores de otra manera.
Adjunto el archivo XLS para que respondes y corriges mi algoritmo.


TestStatu
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Excel con los datos modificados!

Publicado por Juan Antonio (26 intervenciones) el 10/12/2019 08:11:00
Hola Phil Rob, muchas gracias por contester >D
Aqui te adjunto el Excel a como debe funcionar, mi programacion es en VB.NET....
Casi no se programar en Excel, espero le entiendas :D
Saludos desde Mexico.....
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Excel con los datos modificados!

Publicado por Phil Rob (506 intervenciones) el 10/12/2019 11:29:41
Hola,

No comprendo bien ...

Creia que este estaba el mismo registro que evolucionaba. No es el caso ? Miras registros difentes pero consecutivos ?
Si estan registros diferentes, quiza no necesdario contador.
Si es el mismo registro que evoluciona, tambien un contador es necesario : agregado un campos "Contador" en la tabla o agregado un tabla con "IdRegistro" + "Contador" ?

No es claro los diferentes valores posibles :
- en tu primeros mensajes : Normal, Ajustada, Acceptado
- ahora : Normal, Ajustado, Acceptado, Rechazado

Tengo un poco tiempo en la tarde para trabajar a este problema.

Regsitrado
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Excel con los datos modificados!

Publicado por Juan Antonio (26 intervenciones) el 10/12/2019 13:56:33
Hola amigo, adjuntare una foto que dice las condiciones de la misma...
1
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Excel con los datos modificados!

Publicado por Juan Antonio (26 intervenciones) el 10/12/2019 14:02:17
Los registros al momento de insertarse por default cambia al registro que le sigue…..
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Excel con los datos modificados!

Publicado por Juan Antonio (26 intervenciones) el 10/12/2019 14:02:45
Asi como le mostre el Excel, asi se comporta el programa!
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 10/12/2019 08:11:48
Si existe un Contador que hace eso!
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 10/12/2019 18:04:54
Hola,

El mas dificil es de comprender tu trabajo, el objeto del programa ...

Comprendo que cada registro es para UN lote y tienes que aplicar el algoritmo con los 5 últimos registros. Es correcto?
Si este es correcto, este dice que escribir Nivel para el último registro según el Status de los 5 últimos registros. Es correcto?

Siempre si este es correcto, el algoritmo es :
Tengo un nuevo registro a poner : conozco el Status.
Tengo que leer los 4 últimos Status en la tabla.
Aplicar el algoritmo para determinar el Nivel.
Pongo el nuevo registro con su Nivel et su Status en la tabla.

Si esta parece bien, quizá puedo escribir el código VB con las líneas SQL necesarias.
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 11/12/2019 02:47:40
Hola amigo es exactamente lo que tu me estas diciendo….

1. Cada registro es un numero de lote nuevo.
2. El algoritmo se debe aplicar a los ultimos 5 registros, cumpliendo con las condiciones de la imagen adjuntada arriba.
3. Si se conoce el status del nuevo registro a insertar.
5. Tengo que leer los ultimos 5 status de la table.
6. Aplicar el algoritmo para determiner a que nivel corrsponde.
7. Se crea el nuevo registro con su nivel en el status de la tabla....
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 11/12/2019 11:42:30
OK ... estamos acordes !
Debo trabajar sobre el algoritmo.
Hasta pronto, en la tarde.
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 11/12/2019 12:40:14
Muchas gracias amigo, en serio lo agardeceria demasiado!
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 11/12/2019 19:26:50
Hola,

He escribido el algoritmo que debes terminar …

Tienes que escribir los valores de Nivel y Status del registro a agregar según los valores de los 5 últimos registros en la DB y según este que te gusta, según los valores de la pantalla.

Adjunto el proyecto (TestAccesDBSimpleConMostrar.zip) para testar con un DB Access y el código del algoritmo.
Trabajar con un DB simple es bien para ajustar el algoritmo.
Atención, debes cambiar el camino de la DB, no será el mismo en tu PC (miras la imagen).

Explico este algoritmo.

Los principales pasos del algoritmo:

Si la tabla en la DB no tiene 5 registros, nada a hacer
En otro caso, leer los 5 ultimos registros y los poner en DataTable (UnaTabla.TableName = "TUltimosRegistros").
Creo otra DataTable para contener los valores del nuevo registro (NuevoRegistro.TableName = "RegistroAPoner")

Contar los mismos Status en los 5 últimos registros (en la tabla "TUltimosRegistros") y memorizar los Nivel y Status del último registro en la DB

Si no encontrado 5 mismos status, según el valor del ultimo, decir los valores para el nuevo registro ("RegistroAPoner") :

1
2
3
4
5
6
7
8
9
10
11
Select Case StatusEnDB
    Case "Aceptado"
        .Item("nivel") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
        .Item("status") = " ..."
    Case "Rechazado"
        .Item("nivel") = " ..."
        .Item("status") = " ..."
    Case " agregas aqui tan de Case con valores de Status que te gustan"
        .Item("nivel") = "????"
        .Item("status") = "????"
End Select

Si encontrado 5 mismos status, debes decir los valores para el nuevo registro según el último valor de Nivel y el ultimo valor de Status :

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
43
44
45
46
47
48
49
50
Select Case StatusEnDB  ' este es el valor del ultimo Status en la DB
    Case "Aceptado"
        Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
            Case "Normal"
                .Item("nivel") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
                .Item("status") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
            Case "Ajustada"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
            Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
        End Select
    Case "Rechazado"
        Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
            Case "Normal"
                .Item("nivel") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
                .Item("status") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
            Case "Ajustada"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
            Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
        End Select
    Case "Aceptado"
        Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
            Case "Normal"
                .Item("nivel") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
                .Item("status") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
            Case "Ajustada"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
            Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
        End Select
    Case " agregas aqui tan de Case con valores de Status que te gustan"
        Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
            Case "Normal"
                .Item("nivel") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
                .Item("status") = "escriba el valor que tu gusta para el nuevo registro, en este caso"
            Case "Ajustada"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
            Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                .Item("nivel") = " ..."
                .Item("status") = " ..."
        End Select
End Select

Espero que este te ayudara ...

DBStatus
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 12/12/2019 08:04:27
Hola amigo, puedo adjuntarle mi proyecto, para que pueda entender un poco mas lo que trato de hacer…
Muchas gracias por su ayuda, se le agradece demasiado en serio….
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 12/12/2019 08:33:28
Hola,

Si, puedes enviar el proyecto ...

Mi algotrimo no responde a tu problema ?
Este es la repuesta para dar valor a Nivel y Status del nuevo registro según los valores de los 5 últimos registros anteriores.
Sobre la repuesta exacta para cada caso, este es tu que tienes que elegir segun tu reglas.

No tengo mucho tiempo antes manaña

Que tenga un buen días.
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 12/12/2019 09:02:58
Disculpa mi mensaje precedente ...
Probablemente no apropiado.

No he traducio bien tu ultimo mensaje (pueda / puede).

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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 12/12/2019 10:27:09
Este es mi proyecto amigo, se podra hacer algo asi pero en la table AQL!
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 12/12/2019 12:06:02
Intente ejecutarlo y me marcaba varios errores, de compilacion :C
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
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 12/12/2019 13:58:20
Quisiera hacer esa validacion que le comente pero con la base de datos usada en este Sistema.
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 12/12/2019 17:28:42
Hola,

Envías me foto de mensajes de errores.

Voy mirar tu proyecto, pero ningún repuestas antes mañana.

Buena tarde,
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 12/12/2019 18:42:34
Para los errores, este es la version de Access, corrijo.
Hasta pronto
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 12/12/2019 19:05:50
Rápidamente …

Creo que debes ejecutar mi código en las primeras líneas del procedimiento Guardar_Click, en Form_AQL.vb. Mi código debe dar te los valores para los TextBox txt14 y txt39. Después, poderes registrar los datos.

Pero este es trabajo para tu.

Para leer los 5 ultimos registros de AQL, puedes utilizar mi consulta (no olvidar de dar la variable NombreTablaEnDB) :
1
2
3
4
5
6
' Aqui, llenamos un DataTable con los ultimos registros de la tabla en la DB (y para testar, mostrar en DGV)
Consulta = "SELECT TOP " & CuantidadRegistroALeer & " ID, * FROM " & NombreTablaEnDB & " ORDER BY ID DESC"
Dim MiAdapter As New OleDbDataAdapter(Consulta, MiConexion)
MiAdapter.Fill(UnaTabla)
UnaTabla.TableName = "TUltimosRegistros"
MiDatos.Tables.Add(UnaTabla)    ' Poner la tabla en un DataSet no es siempre necesario
Solos los campos Nivel y Status están útiles.

Para integrar mi algoritmo en tu código, tienes que le comprender.

Para compilar y ejecutar sin error mi proyecto, quizá tienes que cambiar la cadena de conexión y no olvidar de cambiar el camino de la DB.
En el proyecto que enviado, la DB se llama MonStock2013.accdb. Este DB es una versión mas reciente que tu AQL. Adjunto mi DB puesto en tu versión (MonStock2013.mdb).
Su camino es “D:\Tmp\TestAccesDBSimpleConMostrar\”, este es el camino del proyecto TestAccesDBSimpleConMostrar. Tienes lo cambiar como es en tu computadora. En mi DB, la tabla para testar es "TLotesInspeccionados".
Mi cadena de conexión es "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= … … … …
En tu codigo, utilizas "Provider=Microsoft.JET.OLEDB.4.0;Data Source= … … … …
Tienes cambiar en mi codigo.
Tienes que reemplazar estos dos líneas en mi código :
1
2
Dim NombreDBCompleto As String = "D:\Tmp\Test... a CAMBIAR ...AccesDBSimpleConMostrar\MonStock2013.mdb" 'accdb"   ' MiExistencia
MiConexion.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & NombreDBCompleto & ";"


Debo partir ... buen trabajo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 13/12/2019 03:09:32
Muchas gracias, si habia cambiado la ubicacion y tambian habia convertido a .mdb la base de datos.
En el connectionString Tambien habia cambiado a JET.OLEDB.4.0 y me marca el sigueinte error.

1
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
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 13/12/2019 14:22:18
Hola,

Miras bien el mensaje del error :
No has escribido JET.OLEDB.4.0, has escribido ACE.OLEDB.4.0 !

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Phil Rob
Val: 2.108
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Phil Rob (506 intervenciones) el 13/12/2019 23:47:37
Hola,

Este es una manera de integrar mi algoritmo en tu código.

En el procedimiento Guardar_Click, después la verificación de txt14, poner las 5 líneas (como en el código parcial) :
1
2
3
4
5
Dim NivelTmp As String = txt14.Text
Dim StatusTmp As String = txt39.Text
DeterminarNivelStatus(NivelTmp, StatusTmp)
txt14.Text = NivelTmp
txt39.Text = StatusTmp

Codigo parcial de Guardar_Click :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
If txt14.Text = "" Then
    MsgBox("No se puede insertar el registro, falta capturar el nivel", vbCritical, "Mensaje...")
    txt14.Focus()
    ' conexionbd_AQL.Close()
Else
 
    ' *** Determinar Nivel y Status para el nuevo registro
    Dim NivelTmp As String = txt14.Text
    Dim StatusTmp As String = txt39.Text
    DeterminarNivelStatus(NivelTmp, StatusTmp)  ' este procedimiento es escribido al inicio de esta Classe
    txt14.Text = NivelTmp
    txt39.Text = StatusTmp
    ' *** ************************************************
 
    consultabd_AQL.Parameters.AddWithValue("@nivel", txt14.Text)
End If

El procedimiento DeterminarNivelStatus es escribido al iniciar de la Classe. Los valores de la pantalla pasan por los parámetros NivelTmp y StatusTmp.
En el procedimiento DeterminarNivelStatus, los valores están cambiado por mi algoritmo (que debes ajustar). En Guardar_Click, los nuevos valores están puesto en txt14 y en txt39, antes que registras.

Codigo completo de DeterminarNivelStatus :
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Private Sub DeterminarNivelStatus(ByRef NivTmp As String, ByRef StaTmp As String)
 
    Dim MiConexion As New OleDbConnection
 
    '' Determinar los nivel y status
    Dim NombreDBCompleto As String = "bd_AQL.mdb" 'accdb"   ' MiExistencia
 
    MiConexion.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & NombreDBCompleto & ";"  ' Ejecutar en x64
 
    Dim CuantidadRegistroALeer As Integer = 5   ' Cuantidad de ultimos registros a leer en la tabla
 
    Dim MiComando As New OleDbCommand
 
    Dim MiDatos As New DataSet
    Dim UnaTabla As New DataTable
    Dim Consulta As String
    Dim NombreTablaEnDB As String = "AQL"   ' este es LaTablaQueMeGusta
 
    MiConexion.Open()
    MiComando = MiConexion.CreateCommand()
    MiComando.CommandType = CommandType.Text
 
    ' *** Si la tabla en la DB no tiene 5 registros, nada a hacer ***
 
    Consulta = "SELECT COUNT(ID) FROM " & NombreTablaEnDB
    MiComando.CommandText = Consulta
 
    If MiComando.ExecuteScalar() < CuantidadRegistroALeer Then   ' Nada a hacer si no bastante registros
        MiConexion.Close()
        MiConexion.Dispose()
        Exit Sub
    End If
 
    ' *** Leer los 5 ultimos registros y los poner en DataTable  ***
 
    ' Aqui, llenamos un DataTable con los ultimos registros de la tabla en la DB (y para testar, mostrar en DGV)
    Consulta = "SELECT TOP " & CuantidadRegistroALeer & " ID, * FROM " & NombreTablaEnDB & " ORDER BY ID DESC"
    Dim MiAdapter As New OleDbDataAdapter(Consulta, MiConexion)
    MiAdapter.Fill(UnaTabla)
    UnaTabla.TableName = "TUltimosRegistros"
    MiDatos.Tables.Add(UnaTabla)    ' Poner la tabla en un DataSet no es siempre necesario
 
    MiAdapter.Dispose()
 
    ' ********** Algoritma para decir el nivel de esto ultimo registro  *******************
 
    ' Contar los Status de los ultimos registros y memorizar los Nivel y Status del ultimo registro en la DB
 
    Dim StatusEnDB As String = MiDatos.Tables("TUltimosRegistros").Rows(0).Item("status")
    Dim NivelEnDB As String = MiDatos.Tables("TUltimosRegistros").Rows(0).Item("nivel")
 
    Dim CuentaDeMismoStatus As Integer = 1
    For L As Integer = 1 To CuantidadRegistroALeer - 1
        If MiDatos.Tables("TUltimosRegistros").Rows(L).Item("status") = StatusEnDB Then
            CuentaDeMismoStatus += 1
        End If
    Next
 
    ' Para memorio (No se si el valor a la pantalla debe es utile para el algoritmo) :
    ' NivTmp tiene aqui el valor de txt14
    ' StaTmp tiene aqui el valor de txt39
 
    ' Decir el valor para Nivel y la Valor para Status para el nuevo registro
    If CuentaDeMismoStatus < 5 Then   ' no encontrado 5 mismos status
        ' segun los valores del ultimo registro en la DB
        Select Case StatusEnDB
            Case "Aceptado"
                NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                StaTmp = "escriba el valor que tu gusta par el nuevo registro"
            Case "Rechazado"
                NivTmp = " ..."
                StaTmp = " ..."
            Case " agregas aqui tan de Case con valores de Status que te gustan"
                NivTmp = "????"
                StaTmp = "????"
        End Select
    Else ' encontramos 5 mismos status
        Select Case StatusEnDB  ' este es el valor del ultimo Status en la DB
            Case "Aceptado"
                Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
                    Case "Normal"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case "Ajustada"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                End Select
            Case "Rechazado"
                Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
                    Case "Normal"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case "Ajustada"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case " agredas aqui tan de Case con valores de Nivel que te gustan"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                End Select
            Case "Aceptado"
                Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
                    Case "Normal"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case "Ajustada"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case " agredas aqui tan de Case con valores de Nivel que te gustan"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                End Select
            Case " agregas aqui tan de Case con valores de Status que te gustan"
                Select Case NivelEnDB   ' este es el valor del ultimo Nivel en la DB
                    Case "Normal"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case "Ajustada"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                    Case " agregas aqui tan de Case con valores de Nivel que te gustan"
                        NivTmp = "escriba el valor que tu gusta par el nuevo registro"
                        StaTmp = "escriba el valor que tu gusta par el nuevo registro"
                End Select
        End Select
    End If
 
    MiConexion.Close()
    MiConexion.Dispose()
    MiDatos.Dispose()
 
End Sub

Adjunto el archivo Form_AQL.vb.

Buen trabajo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 81
Ha aumentado su posición en 4 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Modificar el valor de un campo según opciones

Publicado por Juan Antonio (26 intervenciones) el 18/12/2019 07:36:26
Muchas gracias amigo! Me ha servido de mucha tu ayuda. Se te agradece….
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar