Visual Basic.NET - AutoNumerico

 
Vista:
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 02/06/2023 15:24:35
Buenos Días
necesito ayuda con lo siguiente.
Estoy programando en VB.NET 2010 Express. ..con base de datos Acces, lo que pasa que a la hora de ingresar datos todo e incorrectos sale un mensaje de error que me avisa al darle aceptar se guarda el numero correlativo de ese momento que era 1 y no debería grabarse y cuando lo corrijo se debe guardar el correlativo 1 se guarda como 2
envió el código..que estoy haciendo mal...
gracias

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If

Try
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VBProgramacion\ProyectLicencia\ProyectLicencia\ProyectLicencia\DataLicencia.accdb"
conn.Open()
Instruccion = New OleDbCommand("INSERT INTO Registro(Codigo,ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(TxtCodigo,Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then

Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Value.Date)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
Instruccion.Parameters.AddWithValue("@Costo", TextBox2.Text)
Instruccion.Parameters.AddWithValue("@GrupoSan", Cbgrupo.Text)
Instruccion.Parameters.AddWithValue("@Servicio", TxtServicio.Text)
Instruccion.Parameters.AddWithValue("@Donacion", Cbdonacion.Text)
Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)
Instruccion.ExecuteNonQuery()
MsgBox("Se Guardo Registro", vbInformation, "Aviso")
End If
Ap.Clear()
Am.Clear()
Completo.Clear()
Nom.Clear()
CmbTipo.ResetText()
DNI.ResetText()
DateTimePicker1.ResetText()
Edades.Clear()
CnbSexo.ResetText()
CmbNacionalidad.ResetText()
Casa.Clear()
CmbCat.ResetText()
TextBox1.Clear()
Licencias.Clear()
DateTimePicker2.ResetText()
Fv.Clear()
CmbCondi.ResetText()
'Estados.Clear()
CmbMedico.ResetText()
CmbRes.ResetText()
MaskFechaM.ResetText()
CmbEscuela.ResetText()
MaskFechaV.ResetText()
CmbTramite.ResetText()
CmbDestino.ResetText()
TextBox2.Clear()
Cbgrupo.ResetText()
TxtServicio.Clear()
Cbdonacion.ResetText()
PictureBox2.Image = Nothing
DataGridView1.DataSource = Nothing
Ap.Focus()

Catch ex As Exception
MsgBox("No se Guardo Registro ..Error!, verificar bien las fechas o datos", vbCritical, "Error al Guardar")
End Try
Try
Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtCodigo.Text = CStr(codigos)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
DataRegsitros()
conn.Close()

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 02/06/2023 16:29:23
Hola,

No comprendo bien tu problema pero veo fuente de problema en tu código.

Cuando un campos es NumericoAuto en DB, mejor no lo escribir en el comando INSERT. El sistema Access lo escribirá su mismo.

Por lo tanto, seria bien de intentar con estos códigos (sin Codigo) :

1
2
3
4
5
6
7
8
' ... ... ...
Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)
' ... ... ...
' ... ... ...
' ************    Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
' ... ... ...
' ... ... ...
Espero que este te ayudará ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 02/06/2023 17:01:15
ya estimado gracias...voy a probarlo
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 02/06/2023 17:27:28
estimado ya lo provee y no puedo grabar,, me sale este error siempre
mensaje1
mensaje2
codigo


lo que pasa cuando sale ese error y luego corrijo, me lo guarda pero el codigo ya no es 23L42140 sino me lo guarda con 23L42145(porque e intentado guardar 4 veces osea asi este mal lo guarda el codigo...


quiero ponerle la opcion que si esta todo bien lo guarda, pero si no que no lo guarde........que siga visualizado hasta corregir

gracias por tu apoyo
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 02/06/2023 18:09:53
Leo mas tu código y las imágenes ...

He pensado que el campos NumericoAuto estaba "Codigo" pero veo que he me fallado porque este campos contiene valor con letra.
Por lo tanto, no he comprendido tu problema.

Seria bien que envias el esquema de la tabla "Registro" para mi ver los tipos de los campos. Como esta tabla contiene valores ficticios, puedes enviar la DB "DataLicencia.accdb" completa.

En mas, no comprendo el código siguiente :
1
2
3
4
5
6
7
Try
Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtCodigo.Text = CStr(codigos)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Debería ver el código del procedimiento "GetNextAutoNumeric()".
También, debería ver el código del procedimiento "DataRegsitros()".

"aqui ingrese mal la fecha para que salga este error" ? Que debería ser esta fecha, a este lugar ? Porque escribes una fecha mala ? Quieres hacer el error ? o es la error que da mala fecha ?

Quizá puedes enviar el proyecto completo.

No prometo de te responder hoy, quizá sera mañana. En Perú, es la 11h., aquí, es la 18h.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 02/06/2023 18:13:41
DISCULPA ESTIMADO POR LA HORA .. PERFECTO TE ENVIO EL CODIGO COMPLETO.. GRACIAS
DATA
DATA2

el codigo lo puse texto para que me aceptara letras y numeros
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 02/06/2023 19:24:32
No te preocupe con las horas, lo he dico para comprendes si no respondo rápidamente.

Gracias por el esquema de la tabla. Solamente Id es NumericoAuto.

Esperaba el proyecto completo para lo probar. Pienso a la carpeta VB, con los Forms y códigos, y la DB.

Escribes TxtCodigo con el nuevo Id. Y con TxtCodigo, escribes el campos Codigo en la tabla. Y veo en el foto de la tabla, que cuando Id vale 42062, Codigo vale 23L42062. Este es bien.
Pero cuando Id vale 42061, Codigo vale 23L42058. Este no es bien.

Con GetNextAutoNumeric(), obtienes el Max(Id)+1 que es necesario para crear el nuevo campo Codigo.
En el codigo
1
2
3
Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtCodigo.Text = CStr(codigos)

Puedes reemplazar estos codigo por :
1
TxtCodigo.Text = "23L" & GetNextAutoNumeric.ToString
Pero no pienso que este cambia el problema.

No comprendo que tienes diferencias entre Id y Codigo. Debería ejecutar los codigos paso a paso para comprender.

Debo todavía leer tus códigos y reflexionar. Pero si envias todo el proyecto y la DB, los probara mañana temprano.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 02/06/2023 22:34:41
Gracias estimado
lo que pasa es que como al crear un código lo tenia que crear con 23L0001 ósea que obtenga números y textos...y tenia que jalarlo del la BD de Access, ...y al grabarse sumaba + 1 y me daba 23L0002 .. y asi sucesivamente...y por ello había creado un campo llamado "Id", Autonumérico y un campo Código,... si te das cuenta lo que hace es que trae el campo "id"y le agrego"23L0 y se guarda al campo Código Generando ...Id+23L0 = 23L0124 mas o menos asi,,, ..pero el tema era que al grabar me sale error, debería no grabar o aumentar ,, pero me aumenta ..por ejemplo..
Nº Interno :23L0124 ...asi se muestra al momento de cargar el ultimo numero + 1 de la tabla
al momento de poner la fecha 00/00/0000 me tiene que salir error ya que la fecha esta mal ingresada ...y me muestra el error hasta ahi el sistema esta bien... ...el tema esta en que sigue grabando y autoaumentando el Nº Interno.. y si le sigo insistiendo en guardar varias veces sigue sumando .. y si corrijo la fecha 01/02/2023.. esta correcto... ya no se guarda con lo que comenzó en este caso 23L0124...sino 23L0128.. `porque le insistí cuatro veces el comando guardar.. este es mi error estimado... espero tu apoyo gracis.... ya que estoy empezando en esto de la programación en VB.net 2010 express

gracias
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 03/06/2023 10:50:18
Hola,

Gracias para las explicaciones.

Pienso que tu problema viene del trabajo del sistema DB. Quizá hace existido errores o borrados accidentales, no sé, no comprendo y no puedo lo testar sin el DB.

Pero te propongo una manera más segura para hacer este trabajo.

Propongo de registrar todos campos exceptos “Codigo” (e Id, pero lo sabes). (INSERT)
Inmediatamente (ante otra operación sobre la DB), leemos el ultimo Id creado por el sistema (SELECT @@IDENTITY). Este el Id del INSERT precedente.
Después, podemos hacer la actualización del registro (UPDATE) con el valor del campo "Codigo".

Para mi prueba, la tabla contiene: Id, Codigo, Articulo y Stock_A.

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
Private Function AgregarEnDB() As Boolean
 
        Dim SQL As String
 
        ParametroConexion()
        MiConexion.Open()
        MiComando = MiConexion.CreateCommand()
 
        SQL = "INSERT INTO TProductos (Articulo, Stock_A) VALUES(@Articulo, @StockA); "
        MiComando.CommandText = SQL
 
        ' El campo ID es NumAuto, es dado por el DB
        MiComando.Parameters.AddWithValue("@Articulo", TBArticulo.Text)
        MiComando.Parameters.AddWithValue("@StockA", TBStockA.Text)
 
        If MiComando.ExecuteNonQuery() = 1 Then
            ' Agregacion OK
            SQL = "SELECT @@IDENTITY"  ' da el ultima Id creado para el sistema
            MiComando.CommandText = SQL
            Dim UltimaId As Integer = MiComando.ExecuteScalar()
            Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimaId)
            SQL = "UPDATE TProductos SET Codigo = '" & NuevoCodigo & "' WHERE Id = " & UltimaId & ";"
            MiComando.CommandText = SQL
            MiComando.ExecuteNonQuery()
        Else
            ' Error
            MiConexion.Close()
            MiComando.Dispose()
            Return False
        End If
        MiConexion.Close()
        MiComando.Dispose()
        Return True
    End Function


En el fichero adjuntado TestAccesDBSimpleConMostrarYAgregar.zip, encuentras mi proyecto de pruebas con su DB.
En el fichero adjuntado Carlos.zip, encuentras el video Carlos.mp4. Mira el video.

Atención, para ejecutar mi proyecto, debes cambiar la ruta en la cadena de conexión según tu sistema:
1
Dim RutaYNombreDB As String = "D:\Tmp\TestAccesDBSimpleConMostrarYAgregar\MonStock2013.accdb"

Espero que este te ayudará.

Que tenga un buen día...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 17:50:25
Estimado Buenos Dias..
Ya veo.. mira disculpa mi ignorancia en este nuevo sistema, pero te digo como puedo enviarte mi proyecto sin tener de problemas de capacida d para que lo puedas ver..
gracias por el apoyo
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 17:58:57
esta perfecto..esto suele que si me sale error de ejecución en esta caso por la fecha ma l ingresada, me saliera error ya no se guardará automáticamente?
porque en realidad esta muy bueno tu proyecto..
gracias...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 03/06/2023 18:32:10
Hola,

Si mala fecha, probablemente teneras error sobre el comando INSERT. Tienes que testar.
También es possible que Access da ningún error pero no registrar los campos. En este caso, MiComando.ExecuteNonQuery da 0 y lo pruebo en mi código.

Quizá que la seguridad debe ser mejorare, con bloc Try, pero solamente si necesario después varias pruebas.

Mi prioridad en mi función AgregarEnDB estaba de crear el campo "Codigo" con el Id, sin error, de menara segura. No he sido muy prudente para el resto del algoritmo.

Si puedes ajustar la manera de AgregarEnDB en tu proyecto, no es necesario de enviar tu proyecto, tienes la solution.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 18:34:53
gracias estimado...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 03/06/2023 18:58:50
Continuación...

Mi función AgregarEnDB es llamada para responder al clic del buton "Agregar un producto" (BAgregar). En este caso, agregamos un nuevo registro en la DB.
En mi proyecto, no es programar la actualización de la DB con informaciones agregadas o modificadas sobre el Form, en el DataGridView, por ejemplo. Si modificas en el DGV, las informaciones están cambiadas en el DataTable que es el DataSource del DGV, pero, no están cambiadas en la DB.
Adjunto un video en el fichero CarlosDB2.zip. Veras que no es programad la actualización de todos datos.

Es posible de poner otro buton "Actualizacion" para actualizar la DB con todas cambiadas. En este caso, es necesario de trabajar con los métodos del DataTable para saber que están los registros modificados, borrados, agregados (directamente en el DGV). Entonces, el manera mas segura es de detectar un borrado en el DGV y inmediatamente hacer el DELETE en el DB, de detectar un agregado en el DGV y inmediatamente hacer el INSERT en el DB (con AgregarEnDB), de detectar un modificado en el DGV y inmediatamente hacer el UPDATE en el DB.

Espero te dar buenas ideas ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 19:26:19
Esta perfecto estoy tratando de adecuarlo a mi sistema porque es mas practico.... que significa.... "23L" & String.Format("{0:D5}", UltimaId)...lo que veo es agregarle 23L ?????? , al ultimo ID...lo que esta en ?? para que es .. gracias
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 19:28:23
estoy tratando de adecuarlo a lo del tuyo
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim SQL As String

'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If
Try
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VBProgramacion\ProyectLicencia\ProyectLicencia\ProyectLicencia\DataLicencia.accdb"
conn.Open()
Instruccion = New OleDbCommand("INSERT INTO Registro(Codigo, ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano)" &
"values(TextCodigo,Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,Estados,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio)", conn)
Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Text)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
If Instruccion.ExecuteNonQuery() = 1 Then
Sql = "SELECT @@IDENTITY()"
Instruccion.CommandText = Sql
Dim UltimaId As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimaId)
Sql = "UPDATE TProductos SET Codigo = '" & NuevoCodigo & "' WHERE Id = " & UltimaId & ";"
Instruccion.CommandText = Sql
Instruccion.ExecuteNonQuery()
Else
' Error
conn.Close()
Instruccion.Dispose()
Return False
End If
conn.Close()
Instruccion.Dispose()
Return True
End If

MsgBox("Se Guardo Registro", vbInformation, "Aviso")
Ap.Clear()
Am.Clear()
Completo.Clear()
Nom.Clear()
CmbTipo.ResetText()
DNI.ResetText()
DateTimePicker1.ResetText()
Edades.Clear()
CnbSexo.ResetText()
CmbNacionalidad.ResetText()
Casa.Clear()
CmbCat.ResetText()
TextBox1.Clear()
Licencias.Clear()
DateTimePicker2.ResetText()
Fv.Clear()
CmbCondi.ResetText()
'Estados.Clear()
CmbMedico.ResetText()
CmbRes.ResetText()
MaskFechaM.ResetText()
CmbEscuela.ResetText()
MaskFechaV.ResetText()
CmbTramite.ResetText()
CmbDestino.ResetText()
PictureBox2.Image = Nothing
DataGridView1.DataSource = Nothing
Ap.Focus()
DataRegsitros()
Try
'Dim codProveedor As Integer = GetNextAutoNumeric()
'Dim codigos = String.Format("22L{0:}", codProveedor)
' TxtCodigo.Text = CStr(codigos)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Catch ex As Exception

MsgBox("No se Guardo Registro ..Error", vbCritical, "Error al Guardar")
End Try

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 03/06/2023 21:41:56
"que significa.... "23L" & String.Format("{0:D5}", UltimaId)...lo que veo es agregarle 23L ?????? , al ultimo ID...lo que esta en ?? para que es .. "
En tu programa :
1
2
3
Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtCodigo.Text = CStr(codigos)
utilizas GetNextAutoNumeric() para tener el ultimo Id de la tabla. Pero agregas 1, por lo tanto tienes el Id para el registro siguiente.
Con String.Format("23L{0:}", codProveedor), escribes este Id con el formato 23Lnnnnn que te serve para el Codigo siguiente.
Escribes el resultado en TxtCodigo.Text, este el Codigo formateado para el registro siguiente.
En mi codigo, utilizo :
1
2
3
SQL = "SELECT @@IDENTITY"  ' da el ultima Id creado para el sistema
            MiComando.CommandText = SQL
            Dim Ultimo As Integer = MiComando.ExecuteScalar()
ttengo el ultimo Id dado por el sistema, lo que es dado al registro que vengo de grabar.
En mi programa, he escrito Ultimald, es malo escrito, tienes que leer ULTIMO (perdon me ). He cambiado en este texto.
Ultimo tiene el ID de mi registro.
Ahora, debo escribir la actualización de este registro grabado para escribir el valor Codigo.
Codigo debe contener el Id del registro formateado con 23L y 5 cifres : "23L" & String.Format("{0:D5}", Ultimo)
1
Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", Ultimo)
Ahora, puedo escribir el valor de Codigo dondé el Id egual Ultimo
1
2
3
SQL = "UPDATE TProductos SET Codigo = '" & NuevoCodigo & "' WHERE Id = " & Ultimo & ";"
            MiComando.CommandText = SQL
            MiComando.ExecuteNonQuery()


Espero que este explicación es bien, quizá no ...

Ahora, es le sábado, al inicial de la noche, debo ser cerca ma familia...

Mañana, intentaré de escribir mi algoritmo del INSERT sobre tu procedimiento Button2_Click.

Hasta mañana ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 03/06/2023 21:52:56
muchisimas gracias estimado por tu tiempo y paciencia...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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 04/06/2023 10:10:28
Hola,

He trabajado sobre el documento "cODIGO.docx" que me envias le 2/6 y he borrar todos que no debe me interesar.
He tomar y modificar los códigos que me preocupan en el documento "CODIGO_PHR.docx", aquí adjuntado.

Tienes que lees mis códigos procedimiento a procedimiento y escribes los cambiados en tu programa.

Pienso que deberías lo hacer sin error. No he podido testar porque este habra necesitado de poner todos los elementos sobre un Form, soy demasiado perezoso ...

Para te resumir :
He cambiado FrmIngreso_Load() y Button2_Click()
He creado VaciarTodasZonasDeTexto()
He borrado GetNextAutoNumeric()

Si ves problema en la tabla en la DB, quizá deberías volver a empezar una tabla vacia, o comenzar por "Compactar" la DB.

Carlos

Que tenga un buen día ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 05/06/2023 01:05:36
gracias estimado por tu tiempo...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 07/06/2023 05:32:00
CODIGO
Estimado que tengas un buen dia..
sabes ingrese tu código como me indicaste pero al momento de cargar no me muestras los códigos que resalto en la imagen...
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 07/06/2023 08:36:00
Hola Carlos,

Para comenzar, bebes verificar en la tabla en la DB, que los campos Id y Codigo están bien como lo quieres.
He olvidado de te decir, cuanto el formato 23L y 5 cifres no te gusta, es suffisante de cambiar "23L" & String.Format("{0:D5}".

En mi procedimiento Button2_Click(), debes insertar las 2 lineas con TxtNumeroRegistro y TxtCodigo. Las mostrarán los buenos valores cuando los estarán grabados.

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
' ... ... ..
                If Instruccion.ExecuteNonQuery() = 1 Then
                    ' Agregacion OK
                    Dim SQL As String
                    SQL = "SELECT @@IDENTITY"  ' da el ultima Id creado para el sistema
                    Instruccion.CommandText = Sql
                    Dim UltimoID As Integer = Instruccion.ExecuteScalar()
                    Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimoID)
                    Sql = "UPDATE Registro SET Codigo = '" & NuevoCodigo & "' WHERE Id = " & UltimoID & ";"
                    Instruccion.CommandText = Sql
                    If Instruccion.ExecuteNonQuery() = 1 Then
                        MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
 
TxtNumeroRegistro.Text = UltimoID  ' ¡!! NO SE COMO SE LLAMADA ESTA TEXTBOX
TxtCodigo.Text = NuevoCodigo
 
                    Else
                        ' Error
                        MsgBox("NO se Guardo Registro Correctamente", vbInformation, "Aviso")
                        conn.Close()
                        Instruccion.Dispose()
                        Exit Sub
                    End If
                Else
                    ' Error
                    MsgBox("NO se Guardo Registro Correctamente", vbInformation, "Aviso")
                    conn.Close()
                    Instruccion.Dispose()
                    Exit Sub
                End If
            End If
' ... ... ..

Pienso que este te ayudará.

Que tenga un buen día ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 08/06/2023 18:51:36
gracias estimado ..mil gracias lo ingres cual me lo habia pasado .. pero no se en que estoy fallando , aun no muestra los codigos en los textbox y no me guarda.. al momento de cargar el proyecto ...
saludos
Guad
regid


cambios..
Private Sub FrmIngreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'PARA CONECTAR CON LA BASE DE DATOS
'----------------------------------
conn.ConnectionString = combo


Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing

'CALUCLAR EL TIEMPO
'------------------
Timer1.Enabled = True

'FECHA ACTUAL EN EL CAMPO TEXTFECHA
'-----------------------------------
TxtFecha.Text = DateTime.Now.ToString("dd-MMMM-yyyy")



End Sub



Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If

Try

Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then

' Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Value.Date)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
Instruccion.Parameters.AddWithValue("@Costo", TextBox2.Text)
Instruccion.Parameters.AddWithValue("@GrupoSan", Cbgrupo.Text)
Instruccion.Parameters.AddWithValue("@Servicio", TxtServicio.Text)
Instruccion.Parameters.AddWithValue("@Donacion", Cbdonacion.Text)
Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)
Instruccion.ExecuteNonQuery()
If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As Integer = "23L" & String.Format("{0:D5}", UltimoID)
SQL = "UPDATE Registro SET Codigo='" & NuevoCodigo & "' WHERE Id=" & UltimoID & Instruccion.CommandText = SQL
'Instruccion.CommandText = SQL
If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
TxtNumeroRegistro.Text = UltimoID
TxtCodigo.Text = NuevoCodigo
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
End If
catch ex As Exception
MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
conn.Close()
Instruccion.Dispose()
Exit Sub
End Try
VaciarTodasZonasDeTexto()
DataRegsitros()
End Sub
Private Sub VaciarTodasZonasDeTexto()

Ap.Clear()
Am.Clear()
Completo.Clear()
Nom.Clear()
CmbTipo.ResetText()
DNI.ResetText()
DateTimePicker1.ResetText()
Edades.Clear()
CnbSexo.ResetText()
CmbNacionalidad.ResetText()
Casa.Clear()
CmbCat.ResetText()
TextBox1.Clear()
Licencias.Clear()
DateTimePicker2.ResetText()
Fv.Clear()
CmbCondi.ResetText()
'Estados.Clear()
CmbMedico.ResetText()
CmbRes.ResetText()
MaskFechaM.ResetText()
CmbEscuela.ResetText()
MaskFechaV.ResetText()
CmbTramite.ResetText()
CmbDestino.ResetText()
TextBox2.Clear()
Cbgrupo.ResetText()
TxtServicio.Clear()
Cbdonacion.ResetText()
PictureBox2.Image = Nothing
DataGridView1.DataSource = Nothing
Ap.Focus()

End Sub
Private Sub DataRegsitros()
'actualizar registro en el datagrib al momento de guardar
'---------------------------------------------------------
Dim Adaptador As New OleDbDataAdapter
Dim Registroas As New DataSet
Dim ConsultaR As String
ConsultaR = "select * from Registro"
Adaptador = New OleDbDataAdapter(ConsultaR, conn)
Registroas.Tables.Add("Registro")
Adaptador.Fill(Registroas.Tables("Registro"))
DataGridView1.DataSource = Registroas.Tables("Registro")


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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 08/06/2023 19:39:18
Hola Carlos,

El mensaje del error que viene es el mensaje que has previsto en el bloc Try :


' ... ... ...
catch ex As Exception
MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
conn.Close()
Instruccion.Dispose()
Exit Sub
End Try
VaciarTodasZonasDeTexto()
DataRegsitros()
End Sub

En el Catch ex As Exception, viene tu mensaje y el Exit Sub para no ejecutar el DataRegsitros después una actualización abortada. La fuente del error es antes, quizá en las definiciones de los parámetros.

Por este error, no se hace el INSERT, ni las líneas siguientes.

Por lo tanto, es normal que no ves los datos cuando recargas los registros, no están sido grabados

No puedo testar sin la aplicación. Quizá serai necesario que envias el proyecto completo con todos ficheros y DB.
Si no sabes como hacer, haré una vidéo en la noche o mañana.
Debes me decir si necesario.

Ahora, debo partir durante ±3 horas.

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 08/06/2023 19:59:40
Continuacion...

Por favor, reemplazas linea :
MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
por esta linea :
MsgBox("No se GUardo Registro....Error!, " & ex.Message, vbCritical, "Error al Guardar")

De esta manera, sabremos que detalle da el error.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 08/06/2023 23:11:08
Mil gracias estimado.. voy a verificar bien ... gracias
error

esto me sale
que tengas un buen viaje
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 09/06/2023 01:02:21
COPIA
ESTIMADO.. DISCULPA
! ).paso: al cargar el sistema las casilla de Nª Interno y ID salen vacio,....al momento de grabar recien lo muestra.
2).paso: al momento de llenar todos lo campo y forma correcta.. graba con normalidad y recien los muestra llena las caja de textos de Nª Interno y ID
3).paso : y te envio en la imagen que graba una filia con Id,codigo . nombres.. correctos y otra fila con los mismos datos pero crea el ID, pero no el codigo...ahi te envio resaltado en la imagen
4) al momento de dar una fecha erronea sal el mensaje que te envie anteriormente...este es el codigo .. quye estoy utilizando ahora..

gracias estimado por tu tiempo
Private Sub FrmIngreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'agregue esto...!!!! para ver sobre la conexión segura pero si hay que retiralre esta bien
Try
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VBProgramacion\ProyectLicencia\ProyectLicencia\ProyectLicencia\DataLicencia.accdb"
conn.Open()

MsgBox("Conexion Exitosa", vbInformation, "Conexion Segura")
Catch ex As Exception
MsgBox("Error al Conectarse a la Base de Datos4444", vbCritical, "Sin Conexión")
End Try


'PARA CONECTAR CON LA BASE DE DATOS
'----------------------------------
' conn.ConnectionString = combo


Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing

'CALUCLAR EL TIEMPO
'------------------
Timer1.Enabled = True

'FECHA ACTUAL EN EL CAMPO TEXTFECHA
'-----------------------------------
TxtFecha.Text = DateTime.Now.ToString("dd-MMMM-yyyy")

' TxtNumeroRegistro.Text = UltimoID
' TxtCodigo.Text = NuevoCodigo
End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If

Try

Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then

' Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Value.Date)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
Instruccion.Parameters.AddWithValue("@Costo", TextBox2.Text)
Instruccion.Parameters.AddWithValue("@GrupoSan", Cbgrupo.Text)
Instruccion.Parameters.AddWithValue("@Servicio", TxtServicio.Text)
Instruccion.Parameters.AddWithValue("@Donacion", Cbdonacion.Text)
Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)
Instruccion.ExecuteNonQuery()
If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimoID)

SQL = "UPDATE Registro SET Codigo='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
TxtNumeroRegistro.Text = UltimoID
TxtCodigo.Text = NuevoCodigo
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se GUardo Registro....Error!, " & ex.Message, vbCritical, "Error al Guardar")
conn.Close()
Instruccion.Dispose()
Exit Sub
End Try
VaciarTodasZonasDeTexto()
DataRegsitros()

End Sub

muchisimas gracias
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 09/06/2023 08:50:04
Hola,

Funciona muy bien ... jaja

Pienso que en FrmIngreso_Load, no deben existir las lineas :
Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing


También, pienso que el error de ayer se corrige con solamente conn.Open() al inicial del procedimiento Button2_Click().

Te propongo de intentar :
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
Private Sub FrmIngreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
'agregue esto...!!!! para ver sobre la conexión segura pero si hay que retiralre esta bien
'************Try
' Ya has escrito la variable combo al inicial del codigo del Form, de la Class FrmIngres
'***************   conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data '
'***********     Source=D:\VBProgramacion\ProyectLicencia\ProyectLicencia\ProyectLicencia\DataLicencia.accdb"
'*************conn.Open()
 
'************MsgBox("Conexion Exitosa", vbInformation, "Conexion Segura")
'***************Catch ex As Exception
'***************MsgBox("Error al Conectarse a la Base de Datos4444", vbCritical, "Sin Conexión")
'****************End Try
 
 
'PARA CONECTAR CON LA BASE DE DATOS
'----------------------------------
'************ Es mejor de escribir la ConnectionString para todo el Form y la leer donde es necesario. Es la razón que he utilizado la variable combo que has escrito en tu código del 2 de june, estaba una buena idea.
'***********conn.ConnectionString = combo
 
'****************** Quizá las 2 líneas siguientes están necesarias ..., no las comprendo bien  :(
'****************** pienso que este pode ser la fuente del mostrada duplicada en tu DGV
'****************** Si están necesaria entonces ciertamente el open es necesario :
'*?????? conn.ConnectionString = combo
'*?????? conn.Open
'*?????? Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
'*?????? DataGridView1.DataSource = Nothing
 
'CALUCLAR EL TIEMPO
'-----------------
'************* Efectivamente, las 2 líneas siguientes no deben ser aquí
' TxtNumeroRegistro.Text = UltimoID
' TxtCodigo.Text = NuevoCodigo
 
' ... ... ...

Sobre el error de ayer, en Button2_Click :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If
 
Try
'*****************
'*** No necesario de verificar si Open es bien hecha porque estamos en un bloc Try y que cuando no se hace bien este Open, el mensaje ex.Message dice bien cual es el problema.
conn.ConnectionString = combo
conn.Open()
 
Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ........................
' ... ... ...

Atención a la línea TxtNumeroRegistro.Text = UltimoID en Button2_Click(). He inventado este nombre del TextBox porque no como se llama en tu codigo, no he la encontrado en tus códigos del 2 de june.
Debes reemplazar TxtNumeroRegistro por el nombre correcto del TextBox que recibe el campo Id.

Dice me como funciona.

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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 09/06/2023 17:05:17
ESTIMADO ... BUENOS DIAS ...

Atención a la línea TxtNumeroRegistro.Text = UltimoID en Button2_Click(). He inventado este nombre del TextBox porque no como se llama en tu codigo, no he la encontrado en tus códigos del 2 de june.
Debes reemplazar TxtNumeroRegistro por el nombre correcto del TextBox que recibe el campo Id.
...........
LO QUE PASA EN EL NO ESTABAN PORQUE LOS LLAMABA POR ESTO ....


'Private Function GetNextAutoNumeric() As Integer
'PARA NUMERO AUTONUMERIOC CONSECUTIVO
'------------------------------------
' Using cnn As New OleDbConnection(combo)

' Try
' Dim sql As String = "SELECT MAX(id) FROM Registro"
'Dim sql As String = "SELECT TOP 1 * FROM BaseDatos 1 " & "ORDER BY ID DESC"
' Creamos y configuramos un objeto Command
'------------------------------------------
'Dim cmd As New OleDbCommand(Sql, cnn)
' Abrimos la conexión
'--------------------
' cnn.Open()
' Ejecutamos la consulta
'-----------------------
' Dim value As Object = cmd.ExecuteScalar
' Sumamos una unidad al valor obtenido
'-------------------------------------
' Return CInt(value) + 1
' Catch ex As Exception
' Throw
' End Try
' End Using
'End Function


Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtCodigo.Text = CStr(codigos)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

ESTO Y LOS LLAMABA DE LA BD DE ACCESS Y ME LO MOSTRABA EN LAS CAJAS DE TEXTO "TxtCodigo" ...
ahora se elimino todo y lo estamos reemplazando mas didactico como el tuyo
los campos ahora que me debe de mostrar es al momento de cargar el proyecto en la casilla
TxtCodigo (ahi se mostrara 23L0023 (Codigo)
TxtNumeroRegistro (ahi mostrara lo del (Id) que es 23)

reg
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 09/06/2023 17:22:50
OK.
Veo sobre la imagen que las TextBox están bien llamadas.
Dice me cuando los datos vienen correctamente en el pantalla.
Gracias
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 09/06/2023 20:03:53
Saludos estimado
te envio un word para poder ver las soluciones... te agradezco mucho por tu apoyo y tu tiempo..
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 09/06/2023 22:08:57
Muy bien. Si comprendo bien, todavia existen 2 problemas :

Los duplicados (con y sin Id - Codigo)
No registracion de las correcciones de los campos de tipo fecha, después un error.

Para los duplicados, verificar si existen en la tabla en la DB (abierta con Access).
Si no existen estos duplicados en la tabla "Registro", este es un error de llenado del DGV.
En este caso, también pienso que las lineas siguiente deben ser borrado. El DataTable Registro toma una vez los datos.
conn.ConnectionString = combo
conn.Open
Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing

Si ya borrar estas lineas, no sé ...
Y si los duplicados existen también en la tabla en la DB (abierta con Access), no sé ...

Para la no registracion de las correcciones de los campos de tipo fecha, después un error, veo el mensaje del error : ... ExecuteNonQuery requiere una Connection abierta ...
Por lo tanto, pienso que no has escrito la corrección que he te propuesto :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If
 
Try
'*****************
'*** No necesario de verificar si Open es bien hecha porque estamos en un bloc Try y que cuando no se hace bien este Open, el mensaje ex.Message dice bien cual es el problema.
conn.ConnectionString = combo
conn.Open()
 
Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ........................
' ... ... ...

Te propongo de revisar estas detalles.
Si no funciona, deberás me enviar el proyecto completo para mi lo probar. Es demasiado difícil de depurar los códigos sin los ejecutar.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/06/2023 00:44:31
Estimado encontre el error de la duplcidad estaba en el

Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)

Instruccion.ExecuteNonQuery() "borre esto y me dio el resultado de guardar...
If Instruccion.ExecuteNonQuery() = 1 Then
hasta ahi se soluciono lo del duplicado
al guardar un nuevo registro sale este error (envio el grafico) acepto vuelvo a grabar y lo graba...y asi sucesivamente sale error acepto y graba
....
saludos

msmerror
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/06/2023 04:34:41
Estimado al leer esto ya estaras de Dia.. un buen dia...
resolvi los problemas enviados .....de guardar.. esta ok....del error de fecha envia error se corrige y vuelve a grabar... perfecto ahi te envio el codigo corregido y marcado los cambios..
ahora:---- lo que falta solucionar es:
1). al cargar el proyecto visualizar los Id y Codigos en sus respectivas casillas pero con la numeración que se guardara.
2).que al momento de guardar sale algún error de digitacion no guarde los correlativos porque los sigue guardando y salteándose números, al final de corregir el error se guarda pero si en pantalla se ve el N° Interno 23L4223 .. con el intento de errores que le doy se grabar con 23L4226...estos dos .. temas faltaría solucionar ...
te agradezco por todo...
envio programacion de cambios
Private Sub FrmIngreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'PARA CONECTAR CON LA BASE DE DATOS
'----------------------------------
conn.ConnectionString = combo
conn.Open()
'SUGRENCIA DE BORRAR ESTAS LINEAS
'-------------------------------
'esta linea se encargara que al ingresar los datos nombres, apellidos, se filtrara en el DGV si se encuentra
'-------------------------------------------------------------------------------------------------------------
Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing

'CALUCLAR EL TIEMPO
'------------------
Timer1.Enabled = True

'FECHA ACTUAL EN EL CAMPO TEXTFECHA
'-----------------------------------
TxtFecha.Text = DateTime.Now.ToString("dd-MMMM-yyyy")

' TxtNumeroRegistro.Text = UltimoID
' TxtCodigo.Text = NuevoCodigo
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If

Try
'retire estas opciones
'----------------------
'conn.ConnectionString = combo
'conn.Open()
Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then

' Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Value.Date)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
Instruccion.Parameters.AddWithValue("@Costo", TextBox2.Text)
Instruccion.Parameters.AddWithValue("@GrupoSan", Cbgrupo.Text)
Instruccion.Parameters.AddWithValue("@Servicio", TxtServicio.Text)
Instruccion.Parameters.AddWithValue("@Donacion", Cbdonacion.Text)
Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)
'Retire esta opciones sobre la duplicidad y quedo ok
'--------------------------------------------------
'Instruccion.ExecuteNonQuery()
If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimoID)

SQL = "UPDATE Registro SET Codigo='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
TxtNumeroRegistro.Text = UltimoID
TxtCodigo.Text = NuevoCodigo
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
'Retire esta otra opcion
'-----------------------
'conn.Close()
' Instruccion.Dispose()
Exit Sub
End If

'Retire estas otras opciones
'---------------------------
'Else
' 'error
' MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
'conn.Close()
'Instruccion.Dispose()
' Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se Guardo Registro....Error!, " & ex.Message, vbCritical, "Error al Guardar")

'Retire esta Otra
'----------------
'conn.Close()
'Instruccion.Dispose()
Exit Sub
End Try
VaciarTodasZonasDeTexto()
DataRegsitros()




End Sub
captura-final
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/06/2023 08:29:20
estimado buenos dias ,...nuevamente disculpando encontre la forma de que aparezca los codigos al iniciar el proyecto... bueno te lo paso.. para que los checas.. para poder acomodarlos.....bueno creo que solo faltaria ..al momento del error que no se genere el correlativo..
envio los codigos

Private Sub FrmIngreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'PARA CONECTAR CON LA BASE DE DATOS
'----------------------------------
conn.ConnectionString = combo
conn.Open()
'SUGRENCIA DE BORRAR ESTAS LINEAS
'-------------------------------
'esta linea se encargara que al ingresar los datos nombres, apellidos, se filtrara en el DGV si se encuentra
'-------------------------------------------------------------------------------------------------------------
Me.RegistroTableAdapter.Fill(Me.DataLicenciaDataSet11.Registro)
DataGridView1.DataSource = Nothing

'CALUCLAR EL TIEMPO
'------------------
Timer1.Enabled = True

'FECHA ACTUAL EN EL CAMPO TEXTFECHA
'-----------------------------------
TxtFecha.Text = DateTime.Now.ToString("dd-MMMM-yyyy")

Try
Dim codProveedor As Integer = GetNextAutoNumeric()
Dim codigos = String.Format("23L{0:}", codProveedor)
TxtNumeroRegistro.Text = CStr(codigos)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Try
Dim codProveedores As Integer = GetNextAutoNumeric()
Dim Registro = String.Format("23L{0:}", codProveedores)
TxtCodigo.Text = CStr(Registro)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub
Private Function GetNextAutoNumeric() As Integer
'PARA NUMERO AUTONUMERIOC CONSECUTIVO
'------------------------------------
Using cnn As New OleDbConnection(combo)

Try
Dim sql As String = "SELECT MAX(Id) FROM Registro"
'Dim sql As String = "SELECT TOP 1 * FROM BaseDatos 1 " & "ORDER BY ID DESC"

'Creamos y configuramos un objeto Command
'------------------------------------------
Dim cmd As New OleDbCommand(sql, cnn)

' Abrimos la conexión
'--------------------
cnn.Open()

' Ejecutamos la consulta
'-----------------------
Dim value As Object = cmd.ExecuteScalar

' Sumamos una unidad al valor obtenido
'-------------------------------------
Return CInt(value) + 1
Catch ex As Exception
Throw
End Try
End Using

End Function


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AVISO DE ESPACIOS EN BLANCO
'---------------------------
If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
Ap.Focus()
Exit Sub
End If

Try
'retire estas opciones
'----------------------
'conn.ConnectionString = combo
'conn.Open()
Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
"values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then

' Instruccion.Parameters.AddWithValue("@Codigo", TxtCodigo.Text)
Instruccion.Parameters.AddWithValue("@ApellidoP", Ap.Text)
Instruccion.Parameters.AddWithValue("@ApellidoM", Am.Text)
Instruccion.Parameters.AddWithValue("@ApellidoCompleto", Completo.Text)
Instruccion.Parameters.AddWithValue("@Nombres", Nom.Text)
Instruccion.Parameters.AddWithValue("@Tipo", CmbTipo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Dni", DNI.Text)
Instruccion.Parameters.AddWithValue("@FechaNacimiento", DateTimePicker1.Value.Date)
Instruccion.Parameters.AddWithValue("@Edad", Edades.Text)
Instruccion.Parameters.AddWithValue("@Sexo", CnbSexo.SelectedItem)
Instruccion.Parameters.AddWithValue("@Nacionalidad", CmbNacionalidad.SelectedItem)
Instruccion.Parameters.AddWithValue("@Direccion", Casa.Text)
Instruccion.Parameters.AddWithValue("@Categoria", CmbCat.SelectedItem)
Instruccion.Parameters.AddWithValue("@DatosComp", TextBox1.Text)
Instruccion.Parameters.AddWithValue("@Licencia", Licencias.Text)
Instruccion.Parameters.AddWithValue("@FechaE", DateTimePicker2.Text)
Instruccion.Parameters.AddWithValue("@FechaR", Fv.Text)
Instruccion.Parameters.AddWithValue("@Condicion", CmbCondi.Text)
Instruccion.Parameters.AddWithValue("@Estado", Estados.Text)
Instruccion.Parameters.AddWithValue("@Ecsal", CmbMedico.SelectedItem)
Instruccion.Parameters.AddWithValue("@Restricciones", CmbRes.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaM", MaskFechaM.Text)
Instruccion.Parameters.AddWithValue("@Escuela", CmbEscuela.SelectedItem)
Instruccion.Parameters.AddWithValue("@FechaEs", MaskFechaV.Text)
Instruccion.Parameters.AddWithValue("@Tramite", CmbTramite.SelectedItem)
Instruccion.Parameters.AddWithValue("@Lugar", CmbDestino.SelectedItem)
Instruccion.Parameters.AddWithValue("@Ano", Anio.Text)
Instruccion.Parameters.AddWithValue("@Costo", TextBox2.Text)
Instruccion.Parameters.AddWithValue("@GrupoSan", Cbgrupo.Text)
Instruccion.Parameters.AddWithValue("@Servicio", TxtServicio.Text)
Instruccion.Parameters.AddWithValue("@Donacion", Cbdonacion.Text)
Instruccion.Parameters.AddWithValue("@FechaRegistro", TxtFecha.Text)
'Retire esta opciones sobre la duplicidad y quedo ok
'--------------------------------------------------
'Instruccion.ExecuteNonQuery()
If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "23L" & String.Format("{0:D5}", UltimoID)

SQL = "UPDATE Registro SET Codigo='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
TxtNumeroRegistro.Text = "23L" & UltimoID + 1
TxtCodigo.Text = NuevoCodigo
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
'Retire esta otra opcion
'-----------------------
'conn.Close()
' Instruccion.Dispose()
Exit Sub
End If

'Retire estas otras opciones
'---------------------------
'Else
' 'error
' MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
'conn.Close()
'Instruccion.Dispose()
' Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se Guardo Registro....Error!, " & ex.Message, vbCritical, "Error al Guardar")

'Retire esta Otra
'----------------
'conn.Close()
'Instruccion.Dispose()
Exit Sub
End Try
VaciarTodasZonasDeTexto()
DataRegsitros()



End Sub.

nota: lo que si me salio nuevamente el error del estado actual de la conexion esta abierta!!!!!, imagen anterior .. sali ingrese nuevamente y ya no salio.. bueno espero que se haya arreglado..
envio saludos



codigos
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 10/06/2023 08:39:10
Congratulaciónes
1
2
'Instruccion.ExecuteNonQuery()
If Instruccion.ExecuteNonQuery() = 1 Then ...
Es este corrección qui elimine los duplicados. Debía lo saber, es mi que fallar ...
He olvidado de borrar la primera línea cuando he escrito la segunda

Sobre los Id olvidados, te propongo que vuelvas a poner los controles conn.Open y conn.Close en el procedimiento Button2_Click. No es bien de salir del procedimiento sin cerrar la connexion. Y cuando vuelves en este procedimiento después la fecha corregida, es necesario de re-abrir la connexion.
Los Exit Sub están para evitar la borrada de las zonas de textos.

Cuando tienes el mensaje que "... no puedes cambiar la ConnectionString ... ", es porque ya es abierta.

El problema de connexion existe ya mucho tiempo. Este problema debería se mostrar en otro lugar de tu programa. Debes revisar la organización de los códigos y resolver este problema.

Principios :
La ConnectionString es escrito una sola vez en toda el proyecto y debe ser visible en todos procedimientos.
La connexion (conn) pode ser declarado una sola vez (Dim conn As New OleDbConnection) o en cada procedimiento (con Dim conn As OleDbConnection al inicial del Form y conn = New OleDbConnection cada vez que necesario).
La connexion debe ser abierta cuando la es necesaria Y CERRADA antes de dejar la zona donde la hace sido abierta (si no cerrada, saturación de la memoria) y otras dificultades como conoces.
La ConnectionString debe ser afectada a la conneccion antes cada abierta porque la es olvida desues una cerrada. Por lo tanto, debes haber la 2 lineas cada vez :
conn.ConnectionString = LaVariableQuerContieneLaCadenaDeConnexion ' campo en tu programa
conn.Open

Dice me como funciona después estas correcciones.

Que tenga un buen día ...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 10/06/2023 16:24:24
Hola Carlos,

Debe ser cerca la 9 hora en la mañana a tu casa y supongo que estas despertado. Espero que has bien dormido ...

No sé este conoces y este no conoces sobre la compresión de proyectos y su enviado.

He escrito un documento que explica. Lo adjunto en el fichero ComoComprimir.zip. Este te puede ser útil también en empresa.

Que tenga un buen día ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/06/2023 16:54:23
gracias estimado.. buen dia.. si me levante un poco tarde ya que ayer estuve en la maquina hasta muy tarde...jejejjej..gracias por lo dicho ...lo voy a ver ahora... gracias por ello...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/06/2023 17:03:53
gracias por todo tu apoyo...estimado...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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 12/06/2023 18:58:13
Estimado Buen dia.
sigo con estos dilemas de las conexiones...abierta , cerrada...pero bueno
Una consulta como puedo crear un ejecutable (exe) de mi proyecto con base de datos Acces
noseguardo
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 12/06/2023 19:42:45
Hola,

Para las "abiertas/cerradas", pienso que debes revisar todo el código del Form, a partir de las primeras líneas, con las ideas que he te dado en mi mensaje del 10 de june, sobre el titulo "Principios".

Para hacer un EXE (para otra machina), existen varias soluciones. He escrito un documento sobre esta question. He lo adjuntado.
La mas fácil manera es el "Copiar-Pegar" a partir de la carpeta "Release" que obtienes cuando compiles en modo "Release" a lugar de "Debug". El contenido de la carpeta "Release" puede ser comprimido para viajar hasta el PC cliente, por red, o por el nube, o por USB, ...
El "Pegar" se hace dondé quieres en el PC cliente.
Para la DB es este caso, debes la puestas en esta carpeta "Release". No olvidar de crear un DB con las tablas vacias para no dar una DB contaminada con tus pruebas.

Con la DB en el misma carpeta que el EXE, debes cambiar le cadena de connexion (sin ruta, o con utilizacion de CurDir(), la carpeta del EXE es la carpeta por defecto) :
1
Dim combo As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DataLicencia.accdb"

Espero que este te ayuadrá ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 12/06/2023 19:45:36
listo estimado
mil gracias...ya esta amigo lo de la conexiones.. solo era saber en donde van abrir y cerrar..
.. pero el tema es que al momento de salir el mensaje de error....debería no guardarse hasta subsanar el error,, pero lo guarda...solo faltario ello,,, gracias
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 12/06/2023 20:26:39
Envia me el codigo del Button2_Click, miraré. Pero no prometo resultado, como ya he dicho, es muy difícil de depurar sin probar.
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 12/06/2023 20:59:08
Te propongo de retomar los codigos del 7 de juin.

He corregido el procedimiento Button2.Click suponiendo que le cadena de connexion es en la variable "combo".
Tambine he corregido mi error : olvidar borrar el ExecuteNonQuery.

1
2
3
4
5
6
Imports System.Data.OleDb
 
Public Class FrmIngreso
        Dim conn As New OleDbConnection
        Dim Instruccion As New OleDbCommand
        Dim combo As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VBProgramacion\ProyectLicencia\ProyectLicencia\ProyectLicencia\DataLicencia.accdb"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'AVISO DE ESPACIOS EN BLANCO
        ''---------------------------
        If Ap.Text = "" Or Am.Text = "" Or Nom.Text = "" Or CmbTipo.Text = "" Or DNI.Text = "" Or CnbSexo.Text = "" Or CmbNacionalidad.Text = "" Or Casa.Text = "" Then
            MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
            Ap.Focus()
            Exit Sub
        End If
 
conn.ConnectionString = combo  ' esta linea quizá no es necesaria porque Dim conn As New OleDbConnection es global y no existe Dispose(), pero puede ser escrita
conn.Open
' ... ... ...
' ... ... ...
'  '  '  '  '          Instruccion.ExecuteNonQuery()  ' esta vez, no olvido de suprimir esta liena
 
                If Instruccion.ExecuteNonQuery() = 1 Then
' ... ... ...
' ... ... ...

Adjunto mis códigos .en CODIGO_PHR_2.zip/..
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 13/06/2023 19:24:27
Estimado Buenas
Registre todo lo me habias indicado... sigue saliendo este error
ERROR
saludos .. gracias
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 13/06/2023 20:12:48
te envio el archivo el cual estaba trabajando anteriormente con el unico error que sale esto de error. de connecttion...
gracias 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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 13/06/2023 21:42:25
Hola Carlos,

Tus códigos parecen me correctos. No veo el error con una primera lectura.
Por favor, envia me las declaraciones globales al inicial del Form.

Porqué llamas todavía el procedimiento GetNextAutoNumeric en el evento Load del Form (y dos veces) ? Pienso que GetNextAutoNumeric no es seguro para dar un Id. Mas, este Id no mas necesario porque lees el Id con @@IDENTITY, tras el INSERT.
Normalmente, este debería ser sin efecto sobre el problema. Pero, puedes probar tu aplicación con este parte de FrmIngreso_Load en comentario.



Quizá seria mejor que envia me todo los códigos del Form FrmIngreso. Podré hacer buscados sobre palabras llaves (conn, Open, combo, ...).

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 13/06/2023 21:49:01
Continuacion ...

Porque escrito TxtNumeroRegistro.Text = "23L" & UltimoID + 1 ?
No es el Id de los campos mostrados a la pantalla y (en normalmente, TxtNumeroRegistro.Text serve nada), excepto de mostrar el código del registro que viene de ser hecho.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/06/2023 15:06:41
Estimado Buen día
sobre el GetNextAutoNumeric lo que pasa lo ingresa era para que al momento de cargar el formulario me visualizaran en que código me quede y que sigue después por ello también lo que me indicas que le agregue +1 para ver el siguiente registro a guardar...te envió el código completo de este formulario.....estimado lo que deseo es que que no me siga aumentando la numeración cada vez que le doy guardar y me sale el error ..de todas maneras lo guarda pero no visualiza y se salta a otro numero (1,2,3....7,8,9,10) algo así ocurre )
gracias buen día ,, estimado
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/06/2023 16:24:38
estimado ..
lo que deseo es que al momento que salga un aviso o un error no se genere el Autonumérico .. que se quede en el mismo numero que esta en el momento de visualización,, .. gracias estimado
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 14/06/2023 18:03:51
Gracias para el codigo completo.

Veo el procedimiento Button6_Click que no pode funcionar, las nombres de los procedimientos, funciones, variables, objectos del codigo, no pueden tener caracteres especiales. Solamente alfabato sin acento (A ... Z, a ... z), caracter de subrayado (_), y cifras (0 ... 9) pero no en primera position.

Por lo tento, "condición" no es bien, debe escribir "Condicion". Existe el mismo problema con "año" en Button1_Click.

En Button6_Click, puedes escribir :
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'*** Dim condición As Integer
'**** condición = MsgBox("¿Desea Continuar?", vbYesNo)
If MsgBox("¿Desea Continuar?", vbYesNo)= vbNo Then
'Pass.Close()
Me.Close() ' ????? Cerrar sin cerrar la conn ?
End If

MsgBox("Ha elegido Salir del Formulario", vbCritical)
conn.Close() ' ????? Cerrar el conn y no cerra el Form ?
' Pass.Close()
End Sub

No pienso que este es la fuente de tus problemas....

En Button2_Click(), debes cambiar :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
' ... ... ...
If Instruccion.ExecuteNonQuery() = 1 Then
                        MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
 
****** Creo que hay malo formato (este no explica el error)
                        ‘   TxtNumeroRegistro.Text = UltimoID +1
                        ‘    TxtCodigo.Text = "23L" & String.Format("{0:D5}", (UltimoID+1))
 
‘ cuando quieres mostrar los Id y Codigo del futuro registro (pienso que es no sentido), tienes que escribir :
                           TxtNumeroRegistro.Text = "23L" & UltimoID
                           TxtCodigo.Text = NuevoCodigo
 
                    Else
' ... ... ...

Para el resto de tus códigos, no veo errores que pueden ser fuente de los problemas.

Lo siento, no veo ...
Es necesario de ejecutar Button2_Click paso a paso para saber donde viene el error.

Poner un ponto de interrupción (F9) sobre la linea conn.ConnectionString = combo
Después, ejecutar con F5. La ejecución se parará sobre esta linea.
Después, continuas pasa a paso con F10. Veras cuando el programa saltará al mensaje de error, en el Catch ex.

Con un poco suerte, sabremos cual linea da el error ....
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/06/2023 18:40:03
ya estimado mil gracias por tu ayuda....lo que quiero es que nos e guarde los errores gracias o mejor dicho que no se saltee el autonumerico..
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 14/06/2023 18:53:55
"lo que quiero es que nos e guarde los errores gracias o mejor dicho que no se saltee el autonumerico".

Intento solamente tus mostradas de Id y Codigo como lo quieres. Este que escrito en tus códigos no puede funcionar. Por lo tanto, no obtienes este quieres.

Pero si no has el ejecución paso a paso, nuca sabremos donde viene el error.

Sobre mi comentario con los caracteres especiales, he verificado. Es verdad que VStudio permite estos caracteres en VB. Pero este una mala manera porque no funcionará con otro langage (C, Java, ...). Normalmente, nunca los programadores utilizan estos caracteres.

Debería saber si la compilación es sin error y como se ejecute el paso a paso. Para es cierto de la compilación, puedes borrar el fichero EXE de la carpeta "Debug".
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/06/2023 19:20:53
Estimado lo que me habías indicado en el anterior esta perfecto... ya todo sale ok.. ya no sale error de connection,,. de los codigos a mostrar esta ok.......gracias,, lo ingrese como me indicaste ... gracias..
solo sigue esto de que se graba a corregir cualquier error. ósea explico.
Código Actual 23L42249...

todo ingresado conforme y me olvide de llenar un campo....y le doy GUARDAR ...le doy si para guardar y me salta un aviso "que la casilla de Combox-...esta vacíoaceptar....
luego corrigo con el llenado del combobox.. y doy nuevamente en Guardar ...se guarda Satisfactoriamente...pero al guardar lo guarda con el codigo "23L42251",..cuando debería guardarlo con el código "23L42250".....como puedo cortar este aviso si que me lo guarde en la DB...
gracias por tu paciencia
saludos.

disculpa mi ignorancia en esto.. espero tu comprensión (te envio la carpeta Debug..su contenido)
fichero
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 14/06/2023 20:13:53
Puedo nada hacer con la carpeta "Debug". Cuando propongo de borrar un fichero EXE, estaba para ver que el compilador funciona bien. Este fichero estaba YOSHIMASYS.EXE. Pero, parece me ahora que no es mas necesario.

Sobre ""que la casilla de Combox-...esta vacíoaceptar....
luego corrijo con el llenado del combobox.. y doy nuevamente en Guardar ...se guarda Satisfactoriamente...pero al guardar lo guarda con el codigo "23L42251",..cuando debería guardarlo con el código "23L42250".....como puedo cortar este aviso si que me lo guarde en la DB...", comprendo que cuando acceptas el Combo vacía, el registro es hecho con un cadena vacía y el INSERT funciona sin error. Mas tarde, si corregas el Combo y clic el Button2, este un nuevo registro que es hecho, por lo tano, el Id es aumento.
Pienso que la solucione es al inicial del procedimiento Button2_Click. No debes permitir de entrar en el procedimiento cuando no los Combo están bien, como ya has con los TextBox.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 15/06/2023 00:50:19
lo que pasa es que al querer hacer un ejecutable con el proyecto se genero eso lo llame YOSHIMASYS.EXE... pero no logre que cargue ya que salia error..muchos errores... por ello te habia preguntado como crear un executable y asi poder instalar en cada maquina este proyecto sin necesidad de copiar toda la carpeta.. pero con contenido de BD Accsess

sobre lo del combobox fue un ejemplo igual que la anterior lo hacia con el ingreso de fecha .. es que me sale ese mensaje de Aviso ..como por ejemplo ...Casilla vacia!!!!!,..y por la fecha sale ese mensaje que la "fecha incorrecta"...lo que me dices es correcto hacer un mensaje que si sale ese aviso no me debería de grabar hasta corregir los errores..
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 15/06/2023 15:03:13
Hola,

"no me debería de grabar hasta corregir los errores", efectivamente, es la razón para que digo que debes todo corregir al inicial del procedimiento. Creo que nos repetimos mismas afirmaciones ...

Sobre la instalación, debes poner la DB en la carpeta del fichero EXE, pero en la carpeta "Release". Es la primera necesidad para hacer fácil. No olvidado de cambiar la cadena de connexion como he dicho el 12 de june.

Si utilizas el "Copiar-Pegar", es todo el contenido de esta carpeta que debes copiar en el PC cliente. Cuando existen mucho fichero, comprimimos todos este contenido en un fichero que llamamos "YOSHIMASYS.ZIP" o "INSTALL.ZIP" ... Después, descomprimimos el ZIP en la carpeta que gustamos en el PC cliente.

Si no quieres esta manera, debes ver mi documento "Instalador" del 12 de june y cagar "Microsoft Visual Studio Installer Projects". Para lo utilizar, tiens que buscar las documentaciones sobre el Web de Microsoft. No lo conozco bien.

Mi documento "Instalador" del 12 de june contiene también explicaciones para hacer el "Copiar-Pegar".

Debes saber que "Microsoft Visual Studio Installer Projects" serve a crear un EXE de instalación que debe ser copiado en el PC cliente y que el trabajo de instalación es casi mismo entre "Microsoft Visual Studio Installer Projects" y "Copiar-Pegar". El movido del "Setup.exe" o de "MiProyecto.ZIP" se hacen de misma manera : red, USB, Mail, Nube, ....
El lugar del DB debe ser ajustar de misma manera.

A veces, solos el fichero EXE y la DB están necesarios para copiar en el PC cliente. Para ver si este es el caso de ti programa, puedes lo probar como :

A partir de la carpeta "Release", (tras compilación en modo Release, ver imagen siguiente), puedes copiar YOSHIMASYS.EXE y DataLicencia.accdb en otra carpeta, por ejemplo en "D:\VBProgramacion\MiPruebadeInstalacion" (a crear). Cuando la copiada de ambos ficheros es terminada, en esta carpeta D:\VBProgramacion\MiPruebadeInstalacion, "Double-Click" sobre YOSHIMASYS.EXE y ves si funciona bien. Si no es el caso, puedes copiar todos los ficheros de la carpeta "Release" en la carpeta "D:\VBProgramacion\MiPruebadeInstalacion" y probar el "Double-Click" sobre YOSHIMASYS.EXE. Si no funciona, es que existe otro error y que no puedes instalar este programa sin haber corregido otros problemas. Si funciona, te resta a elegir la manera de hacer el fichero de instalación.


Release
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 15/06/2023 17:00:51
Estima Buen dia...
Gracias... si estoy tratando dentro del procedimiento Button al iniciar darle la opcion sobre el posible error para que no pase a guardar...gracias por lo explicado sobre la creacion del ejecutable(exe)... lo que pasa esto lo vi en un video de youtube.. pero no logre concretarlo como me indicaban..
pero como te comente me salía muchísimos errores...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 15/06/2023 18:23:16
Pienso que la manera que has probado no es "Microsoft Visual Studio Installer Projects" o "Copiar-Pegar". Pienso que es la herramienta "Publicación". No lo conozco.

Has probado de "Copiar-Pegar" YOSHIMASYS.EXE y DataLicencia.accdb en otra carpeta y probado de ejecutar YOSHIMASYS.EXE en esta carpeta ? Si funciona de esta manera, porque buscar mas difícil ?
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 15/06/2023 20:03:05
Gracias estimado por tu apoyo.
te comento que estoy trabajando con Microsoft Visual Basic 2010 Express, pero parece que tiene algunas restricciones porque cuando ingreso al Extension Manager ...no se conecta a buscar aplicativos u otros
Captura
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 15/06/2023 22:36:35
Lo siento, mi mas antiqua version es 2013 FR y con esta version, tengo mismo problema.
Si no puedes utilizar, te subsiste el "Copiar-Pegar". Tienes WinRar y Windows da un Winzip ("Enviar en capeta comprimida").

Para te tranquilizar, haces la prueba que he te propuesto de hacer el "Copiar-Pegar" en otra la carpeta sobre la misma máquina, con solamente 2 ficheros en primer lugar, y con todos ficheros de "Release" si necesario, sin comprimir. Cuando funciona, lo rehacer con el fichero comprimido.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 16/06/2023 16:26:17
Gracias Estimado....
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 17/06/2023 19:58:49
Estimado que tal es el VB6..has trabajado alguna vez con ello?..
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
Imágen de perfil de Leonardo Daniel A.
Val: 62
Ha disminuido su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Leonardo Daniel A. (36 intervenciones) el 17/06/2023 20:56:27
VB6 esta muerto, solo lo usan aquellos que tienen sistemas antiguos y no los migran porque es mucha inversion..

puedes probar XOJO que usa sintaxis como VB, pero es mucho mejor
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 18/06/2023 00:18:07
Hola Carlos,

Veo ahora tu pregunta, había ido todo la tarde. Pero veo que Leonardo has respondido bien.
VB 6.0 es efectivamente antiguo, es un ancestro de VB.Net. El VBA (VB for Application) parece todavía mucho a VB6.

El futuro es hecho con técnicas contenido en VisualStudio. En estas técnicas, encuentras VB.Net, C#, Asp y otros.
Si tu objetivo es reemplazar VisualStupio 10 Express, quizá debes buscar las versiones VS2017 o mas récentes. Pienso que puedes encontrar un version gratuita buscando con "Visual community".

Espero que este te ayudará...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/06/2023 15:56:57
Buen dia Estimado...
Gracias estimado por los enlaces..
estimado estoy tratando de ver con las fechas que estan en MaskedTextBox..lo que pasa es que cuando se ingresa 00/00/0000 el sistema me de el aviso de la fecha que esta mal ingresada,,,
saludos .
gracias
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/06/2023 16:52:07
Hola Carlos,

Das me mas de informaciones...
Como entrar la mala fecha en el MaskedTextBox ? El formato definido en sus propiedades esta compatibles con la fecha que viene ? Por ejemplo, pienso al formato por defecto en la DB que es DD/MM/YYYY HH:MM/SS que puede hacer problema con un formato DD/MM/YYYY.

He escrito una pequeña prueba (ver imagen) y veo que puedo escribir una fecha estúpida sin tener error.

MaskedTB

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/06/2023 17:02:38
Mismo con este codigo, no tengo error :

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
        Dim D As String
 
        D = String.Format("{0:F}", Now)
 
        MessageBox.Show(D)
 
        MaskedTextBox1.Text = D
 
        MessageBox.Show(MaskedTextBox1.Text)
    End Sub

MaskedTB2

El segundo MessageBox da un malo resultado pero no mensaje de error.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/06/2023 17:04:34
gracias Estimado te agradezco...
voy a probarlo
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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/06/2023 18:08:21
Estimado perfecto.. gracias
me pudieras apoyar en esto tengo un MaskedTextBox1.Text .. lo que deseo es que cuando ingrese fecha como por ejemplo 00/00/0000 Y me salga un Mensaje que la fecha no es correcta....y que tambien si no el certificado que ingreso no traiga fecha.. que me acepte grabar en blanco "__/__/____....
SALUDOS
GRACIAS
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/06/2023 18:45:30
Comprendo, es la DB que da error cuando fecha es vacía.
Por lo tanto, es al memento del INSERT que viene el problema.

Te propongo de escribir 2(o mas) comando INSERT segun que la fecha existe o es vacia
Puedes saber si MaskedTextBox es llenado con MaskCompleted :
1
2
3
4
5
6
' en mi ejemplo precedente :
        If Not MaskedTextBox1.MaskCompleted Then
            MessageBox.Show("Error")
        Else
            MessageBox.Show(MaskedTextBox1.Text)
        End If

y puedes cambiar el INSERT segun la fecha, por ejemplo :
1
2
3
4
5
6
If Es bien la FechaM  Then  ' debes escribir los codigos correctos
            Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,FechaM,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
                                           "values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,MaskFechaM,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)
Else
            Instruccion = New OleDbCommand("INSERT INTO Registro(ApellidoP, ApellidoM,ApellidoCompleto,Nombres,Tipo,Dni,FechaNacimiento,Edad,Sexo,Nacionalidad,Direccion,Categoria,DatosComp,Licencia,FechaE,FechaR,Condicion,Estado,Ecsal,Restricciones,Escuela,FechaEs,Tramite,Lugar,Ano,Costo,GrupoSan,Servicio,Donacion,FechaRegistro)" &
                                           "values(Ap,Am,Completo,Nom,CmbTipo,DNI,DateTimePicker1,Edades,CnbSexo,CmbNacionalidad,Casa,CmbCat,TextBox1,Licencias,DateTimePicker2,Fv,CmbCondi,CbEstado,CmbMedico,CmbRes,CmbEscuela,MaskFechaV,CmbTramite,CmbDestino,Anio,TextBox2,Cbgrupo,TxtServicio,Cbdonacion,TxtFecha)", conn)

Espero te dar una buena idea ...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/06/2023 18:58:10
Sin pensar a otros problemas que este puede hacer, existe la solución de reemplazar en la DB, los tipos "Date" por tipos "Text".
En esta manera, puedes grabar todos MaskedtextBox, mismo cuando es " / / ". Y a la lectura de la DB, obtendrás " / / " caundo la fecha no es conocida.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/06/2023 19:19:12
Te pasastes.. mil gracias estimado...
gracias. 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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 21/06/2023 17:04:15
Estimado Buen Dia.
Gracias a esta pagina he podido solucionar y al gran apoyo que me has brindado solucionando mis dudas y mis errores. Te agradezco de la mucha ayuda otorgada..
gracias
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 21/06/2023 17:46:19
Estoy mucho felíz que tus problemas están solucionados.
No dudas si todavía necesario.
Que tenga un buen día ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 26/06/2023 01:19:09
Estimado Buenas Tardes..
Esperando este bien.. otra consulta ......como pudiera hacer una busquedas de Rangos de Fechas..explico
por ejemplo de 01/01/2023 al 31/05/2023..... ahí lo tengo todo codificado que me da el resultado perfecto..lo busca todo el historial ingresado de esa fecha que se encuentra en BDAccess...lo que deseo es como puedo hacer que de esos rangos de fechas pueda seleccionar cuantos "RENOVACIÓN "o "NUEVOS" ,...se registraron de la columna que dice "CONDICION".. de lo seleccionado según el rango deseado..
adjunto toma
condicion

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 27/06/2023 14:30:55
Hola Carlos,

Ves mi documento adjuntado.
Te propongo 3 consultas diferentes a ejecutar según el caso, es la solución mas fácil.

No olvidas de reemplazar los nombres (Campos y ComboBox, como escrito), y como no he probado, quizá hay errores de sintaxis.

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 27/06/2023 14:57:49
Continuación ...

No sé su esta puede te ayudar...

Existe solución que puede ser utilizadas para varias consultaciones del DGV : por defecto, cuando cliques la cabeza de una columna, las líneas están ordenadas.

Es decir que, si el DGV es llenado con los registros entre 2 fechas, si cliques la cabeza de la columna "Condition", las lineas estan ordenadas sobre este valor y todas condiciones iguales a "Neuvo", estan juntas.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 07/07/2023 23:46:39
Estimado...saludos
nuevamente envio para tu apoyo
gracias.. 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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 08/07/2023 10:25:26
Hola Carlos,

Ves mi documento adjuntado.

Para verificar mis ideas, gustaría tener las esquemas de las tablas SANCIONES y ACTAS, y también, un ejemplo de datos coherentes de ambos tablas.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 08/07/2023 18:39:23
ENVIO LA TABLA ESTIMADO GRACIAS
GUARDAR ACTAS... ME FALTARIA AGREGAR PARA ENVIAR SOLO LOS DATOS. N°acta Y fecha de Entrega...a la Tabla SANCIONES ..que al momento de hacer una busqueda.. en el formulario busqueda me de la condicion de ese vehiculo. si tiene N°Acta y fecha se mostrar su condicion...
saludos estimado..
gracias

envio el codigo de guardar acta..desde
Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
If TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
TextBox6.Focus()
Exit Sub
End If

Try
conn.ConnectionString = combo
conn.Open()
Instruccion = New OleDbCommand("INSERT INTO ACTAS(FEntrega,Datos,Dni,Domicilio,Dinterno,FIngreso,Categoria,Placa,Marca,Color,Modelo,Motor,Serie,Descripcion)" &
"values(FechaRegistro,TextBox5,TextBox6,TextBox7,TextBox9,TextBox10,TextBox12,TextBox13,TextBox14,TextBox15,TextBox16,TextBox17,TextBox18,TextBox8)", conn)
If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then
Instruccion.Parameters.AddWithValue("@FEntrega", FechaRegistro.Text)
Instruccion.Parameters.AddWithValue("@Datos", TextBox5.Text)
Instruccion.Parameters.AddWithValue("@Dni", TextBox6.Text)
Instruccion.Parameters.AddWithValue("@Domicilio", TextBox7.Text)
Instruccion.Parameters.AddWithValue("@Dinterno", TextBox9.Text)
Instruccion.Parameters.AddWithValue("@FIngreso", TextBox10.Text)
Instruccion.Parameters.AddWithValue("@Categoria", TextBox12.Text)
Instruccion.Parameters.AddWithValue("@Placa", TextBox13.Text)
Instruccion.Parameters.AddWithValue("@Marca", TextBox14.Text)
Instruccion.Parameters.AddWithValue("@Color", TextBox15.Text)
Instruccion.Parameters.AddWithValue("@Modelo", TextBox16.Text)
Instruccion.Parameters.AddWithValue("@Motor", TextBox17.Text)
Instruccion.Parameters.AddWithValue("@Serie", TextBox18.Text)
Instruccion.Parameters.AddWithValue("@Descripcion", TextBox8.Text)

If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "A" & String.Format("{0:D4}", UltimoID)

SQL = "UPDATE ACTAS SET Generado='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
Nacta.Text = "A" & String.Format("{0:D4}", (UltimoID + 1))
TxtCodigo.Text = NuevoCodigo
Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If

Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se Guardo Registro....Error de Programación!, " & ex.Message, vbCritical, "Error al Guardar")
conn.Close()
Exit Sub
End Try
conn.Close()
' VaciarTodasZonasDeTexto()
' DataRegsitros()
BtnGuardar.Visible = False
ImpActa.Visible = True
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 08/07/2023 19:56:02
Hola Carlos,

Vengo de recibir tu mensaje y he cargado la DB. Puedo la leer.
Pero no tengo tiempo ahora, miraré todo mañana, temprano.

Hasta mañana, y buenas tardes ....
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 08/07/2023 23:19:47
Gracias por los deseos de apoyar.. buen fin de semana
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 09/07/2023 12:44:48
Hola,

He respondido a tu pregunta "ME FALTARIA AGREGAR PARA ENVIAR SOLO LOS DATOS. N°acta Y fecha de Entrega...a la Tabla SANCIONES". He agregado las líneas de códigos en tu procedimiento BtnGuardar_Click. No olvidas de agregar ambos campos a la tabla "SANCIONES".

He te escrito un ejemplo de organización de los datos en un DB para no tener redundancias de los informaciones y de sus gestión. Si quieres rehacer tu DB, puedo te ayudar pero deberás rescribir muchos códigos.

Ves mi documento adjuntado.

Espero que este te ayudará ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 09/07/2023 23:41:04
Gracias Estimado.. muchisimas gracias, con tu apoyo estoy tratando se aprende mucho...te indique que soy nuevo en esto de VB.net.. estaba leyendo sobre las Tablas mas o menos que estaba comprendiendo...me falta conocer mucho sobre relaciones y asi como dices eliminar la redundancia o cantidad de datos en una sola tabla...te agradezco mucho...en ello ..(disculpa mi ignorancia... es que el tema lo vi asi.. si tengo una sola tabla .. podria guardar al momento de ingresar a los registros a una sola,, y para hacer cosulta, solo jalaria desde la misma tabla,, sin necesidad de jalar de varias tablas...nuevamente disculpando mi ignorancia...)Gracias..

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 10/07/2023 12:23:15
Hola Carlos,

No sé si respondo bien a tu mensaje pero he escrito algunas explicaciones sobre la tablas organizadas.

Ves mi documento adjuntado.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/07/2023 18:18:04
GRACIAS ESTIMADO UD. COMO SIEMPRE DIDACTICO..VOY A INGRESAR LOS DATOS A ENVIAR LOS CAMPOS ...
GRACIAS
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 10/07/2023 22:49:31
Estiamdo te envio el archivo..
ingrese pero no me muestra nada
saluods
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 11/07/2023 12:30:55
Hola Carlos,

Existían 3 errores, una por mí y dos por ti .

Ves mi documento adjuntado.

Espero que este te ayudará ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 11/07/2023 15:16:10
GRACIAS ESTI,MADO .. LOS VEO TODOS TUS DOCUMENTOS..
PERO NO LOGTO IDENTIFCAR...
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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 11/07/2023 16:07:34
JAJAJAJA...LO QUE PASA ES QUE NO SALE ERROR Y NO ME LO TRASPASA .. NO PUEDO ENCONTRAR EL ERROR ..DISCULPA
SALUDOS
Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
If TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
TextBox6.Focus()
Exit Sub
End If

Try
conn.ConnectionString = combo
conn.Open()
Instruccion = New OleDbCommand("INSERT INTO ACTAS(FEntrega,Datos,Dni,Domicilio,Dinterno,FIngreso,Categoria,Placa,Marca,Color,Modelo,Motor,Serie,Descripcion,ExpAc)" &
"values(FechaRegistro,TextBox5,TextBox6,TextBox7,TextBox9,TextBox10,TextBox12,TextBox13,TextBox14,TextBox15,TextBox16,TextBox17,TextBox18,TextBox8,TextBox20)", conn)
If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then
Instruccion.Parameters.AddWithValue("@FEntrega", FechaRegistro.Text)
Instruccion.Parameters.AddWithValue("@Datos", TextBox5.Text)
Instruccion.Parameters.AddWithValue("@Dni", TextBox6.Text)
Instruccion.Parameters.AddWithValue("@Domicilio", TextBox7.Text)
Instruccion.Parameters.AddWithValue("@Dinterno", TextBox9.Text)
Instruccion.Parameters.AddWithValue("@FIngreso", TextBox10.Text)
Instruccion.Parameters.AddWithValue("@Categoria", TextBox12.Text)
Instruccion.Parameters.AddWithValue("@Placa", TextBox13.Text)
Instruccion.Parameters.AddWithValue("@Marca", TextBox14.Text)
Instruccion.Parameters.AddWithValue("@Color", TextBox15.Text)
Instruccion.Parameters.AddWithValue("@Modelo", TextBox16.Text)
Instruccion.Parameters.AddWithValue("@Motor", TextBox17.Text)
Instruccion.Parameters.AddWithValue("@Serie", TextBox18.Text)
Instruccion.Parameters.AddWithValue("@Descripcion", TextBox8.Text)
Instruccion.Parameters.AddWithValue("@ExpAc", TextBox20.Text)
If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "A" & String.Format("{0:D4}", UltimoID)

SQL = "UPDATE ACTAS SET Generado='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
Nacta.Text = "A" & String.Format("{0:D4}", (UltimoID + 1))
TxtCodigo.Text = NuevoCodigo

SQL = "UPDATE SANCIONES SET Nacta = @Nactas, FEntregaAC = @FEntregaAC WHERE Placa='" & TextBox13.Text & "';"
Instruccion.CommandText = SQL
Instruccion.Parameters.AddWithValue("@Nactas", NuevoCodigo)
Instruccion.Parameters.AddWithValue("@FEntregaAC", FechaRegistro.Text)

Else
SQL = "delete from ACTAS where id=" & UltimoID & ";"
Instruccion.CommandText = SQL
Instruccion.ExecuteNonQuery()
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If

Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se Guardo Registro....Error de Programación!, " & ex.Message, vbCritical, "Error al Guardar")
conn.Close()
Exit Sub
End Try
conn.Close()
' VaciarTodasZonasDeTexto()
' DataRegsitros()
BtnGuardar.Visible = False
ImpActa.Visible = True
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 11/07/2023 17:30:18
Hola,

"QUE NO SALE ERROR Y NO ME LO TRASPASA .. NO PUEDO ENCONTRAR EL ERROR"

Hay 3 errores a corregir !

Has corregido la frase SQL (SQL = "UPDATE SANCIONES SET Nacta = @Nactas, ... ... ..., pero no has puesto el
Instruccion.Parametros.Clear, ni el ExecuteNoQuery.

Este el codigo completo con mis modificaciones puestas en comentarios.

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
'... ... ...
   Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
        If TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Then
            MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
            TextBox6.Focus()
            Exit Sub
        End If
 
        Try
            conn.ConnectionString = combo
            conn.Open()
            Instruccion = New OleDbCommand("INSERT INTO ACTAS(FEntrega,Datos,Dni,Domicilio,Dinterno,FIngreso,Categoria,Placa,Marca,Color,Modelo,Motor,Serie,Descripcion)" &
                                           "values(FechaRegistro,TextBox5,TextBox6,TextBox7,TextBox9,TextBox10,TextBox12,TextBox13,TextBox14,TextBox15,TextBox16,TextBox17,TextBox18,TextBox8)", conn)
            If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then
                Instruccion.Parameters.AddWithValue("@FEntrega", FechaRegistro.Text)
                Instruccion.Parameters.AddWithValue("@Datos", TextBox5.Text)
                Instruccion.Parameters.AddWithValue("@Dni", TextBox6.Text)
                Instruccion.Parameters.AddWithValue("@Domicilio", TextBox7.Text)
                Instruccion.Parameters.AddWithValue("@Dinterno", TextBox9.Text)
                Instruccion.Parameters.AddWithValue("@FIngreso", TextBox10.Text)
                 ' *** PHR Instruccion.Parameters.AddWithValue("@FIngreso", CType(FechaRegistro.Text, Date).AddDays(-1))
                Instruccion.Parameters.AddWithValue("@Categoria", TextBox12.Text)
                Instruccion.Parameters.AddWithValue("@Placa", TextBox13.Text)
                Instruccion.Parameters.AddWithValue("@Marca", TextBox14.Text)
                Instruccion.Parameters.AddWithValue("@Color", TextBox15.Text)
                Instruccion.Parameters.AddWithValue("@Modelo", TextBox16.Text)
                Instruccion.Parameters.AddWithValue("@Motor", TextBox17.Text)
                Instruccion.Parameters.AddWithValue("@Serie", TextBox18.Text)
                Instruccion.Parameters.AddWithValue("@Descripcion", TextBox8.Text)
 
                If Instruccion.ExecuteNonQuery() = 1 Then
                    Dim SQL As String
                    SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
                    Instruccion.CommandText = SQL
                    Dim UltimoID As Integer = Instruccion.ExecuteScalar()
                    Dim NuevoCodigo As String = "A" & String.Format("{0:D4}", UltimoID)
 
                    SQL = "UPDATE ACTAS SET Generado='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
                    Instruccion.CommandText = SQL
 
                    If Instruccion.ExecuteNonQuery() = 1 Then
                        MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
                        Nacta.Text = "A" & String.Format("{0:D4}", (UltimoID + 1))
                        TxtCodigo.Text = NuevoCodigo
 
                        SQL = "UPDATE SANCIONES SET NActas=@Nactas,FEntregaAC=@FEntregaAC WHERE Placa='" & TextBox13.Text & "';"
                        Instruccion.CommandText = SQL
                        Instruccion.Parameters.Clear()
                        Instruccion.Parameters.AddWithValue("@Nactas", NuevoCodigo)
                        Instruccion.Parameters.AddWithValue("@FEntregaAC", FechaRegistro.Text)
                        If Instruccion.ExecuteNonQuery() <> 1 Then
                            'error : ES necesario de eliminar el registro en Actas porque NO lo será completado en SANCIONES.
                            ' Cuando no eliminar el registramente incomplto, creas un registro huérfano en la tabla ACTACS
                            SQL = "DELETE FROM ACTAS WHERE Id=" & UltimoID & ";"
                            Instruccion.CommandText = SQL
                            Instruccion.ExecuteNonQuery()
                            MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
                            conn.Close()
                            Instruccion.Dispose()
                            Exit Sub
                        End If
                    Else
                        MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
                        conn.Close()
                        Instruccion.Dispose()
                        Exit Sub
                    End If
                Else
                    'error
                    MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
                    conn.Close()
                    Instruccion.Dispose()
                    Exit Sub
                End If
            End If
        Catch ex As Exception
            MsgBox("No se Guardo Registro....Error de Programación!, " & ex.Message, vbCritical, "Error al Guardar")
            conn.Close()
            Exit Sub
        End Try
        conn.Close()
 
        ' VaciarTodasZonasDeTexto()
        ' DataRegsitros()
 
        ' *** PHR *** escritura provisionale para ver el resultado
         ' *** PHR Dim dtX As New DataTable
         ' *** PHR Dim das As New OleDb.OleDbDataAdapter("SELECT * FROM SANCIONES WHERE Placa = '" & TextBox13.Text & "';", conn)
         ' *** PHR das.Fill(dtX)
        ' *** PHR DataGridView1.DataSource = dtX
 
        BtnGuardar.Visible = False
        ImpActa.Visible = True
    End Sub
 
'... ... ...

Atención que tu programa no actualización mediatamente el DGV. Este es la razón de mis códigos la la fin del procedimiento. Si la actualización mediatamente del DGV est buena para ti, puedes borrar estos códigos.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 11/07/2023 17:45:12
gracias estimado te pasaste.. mil gracias lo voy ingresar
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
sin imagen de perfil

AutoNumerico

Publicado por carlos (68 intervenciones) el 11/07/2023 18:31:20
Estimado Mil gracias... ahora si todo bien perfecto...excelente....
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 13/07/2023 17:27:13
ESTIMADO BUEN DIA NUEVAMENTE MOLESTANDOTE.. DISCULPA...
SE PODRIA HACER QUE AL MOMENTO DE HACER SU ACTA DE ENTREGA, ESE VEHICULO SE BORRARA DE LA TABLA DE SANCONES, PERO SE IRIA GUARDADO EN UNA TABLA ADICIONAL, NOSE, PUEDE SER (Historial), o de lo contrario que si ya tiene Numero de Acta ese vehículo que salga un aviso "vehículo ya no registra"...(creo que seria mejor asi antes de crear otra tabla ,,..no se..
gracias estimado
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 13/07/2023 18:28:53
Hola Carlos,

Recibo tu mensaje ahora pero debo partir.
Lo veré en detalle mañana.

Antes, si quieres hacer menos datos, dices me si este puede te gustar :
En SANCIONES, la descripción del vehículo existe mismo si no hay infracción.
Cuando viene infracción, escribes en ACTAS las informaciones que no existe en SANCIONES, Y también un duplicado del Id en SANCIONES.
Para saber si un vehículo tiene un registro en ACTAS, es bastante de buscar su Id en ACTAS. E
De esta manera, puedes mismo tener muchas informaciones para un mismo vehículo.

Si este que te propongo es bien, dice me.

Veré todo mañana temprano.

Buenas tardes....
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 14/07/2023 10:08:53
Hola Carlos,

Por favor, confirme me mis 5 afirmaciones.

Ves mi documento adjuntado.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/07/2023 16:03:39
TODO ESTA BIEN ,,, ESTIMADO PERFECTO AHI TE ENVIO EL RESUMEN
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 14/07/2023 16:36:03
Muy bien!

Por lo tanto, trabajas con una sola tabla : SANCIONES
Pero, debes crear un NActa para escribir sobre tu documento y para diferencia varias infracciones de un mismo vehículo, de manera a no tener dos documento con mismo NActa escrito y para tener la historia. En este caso, NActa puedes ser YYMMDDhhmmss (fecha y hora en String, sin separador), si no demasiado grande. Pero también puedes diferencia solamente con la fecha de ingresa, porque un vehiculo no puede ser decomisado 2 veces a la misma fecha.

Pienso a tu pantalla. Un solo Form debería es bastante, con los botones :
Consultar un o todos vehiculos, (segun que zonas de selecciones están escritas o no)
Agregar una acta para un nuevo vehiculo (escribir "manualmente" las zonas de textos)
Agregar una acta para el vehiculo seleccionado (escribir las zonas de textos con las informaciones seleccionadas y corregir las diferencias)
Modificar el registro del vehiculo seleccionado (mismo que precedente para corregir un error encuentrado)
Registrar antes dejar el Form. (si "AGREGAR" hacer un INSERT, si "MODIFICAR" hacer un UPDATE).

Espero que este te ayudará ...
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 14/07/2023 17:50:21
GRACIAS ESTIMADO...TRATARE DE HACER ALGO...JEJEJ
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 17/07/2023 15:17:23
Estimado,, buen dia..
una consulta .. mira cada vez que agrego una imagen en un Button o en un PictureBox,,, me slae error o desaparece el formulario y me sale un formulario con unas cosas de error y no muestra el diseño del formulario.... sabes algo de ello..como solucionar
gracias 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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 17/07/2023 23:43:26
Hola,
No he visto tu mensaje más temprano.
Tu problema viene cuando cambias propiedad del PictureBox o Butrón en la cadra de las propiedades o cuando compilar códigos que ponen la imagen?
Si este es códigos, envías me...
Miraré mañana temprano... (ahora, voy dormir... :D)))
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 18/07/2023 09:38:28
Hola Carlos,

Quizá tengo las buenas explicaciones.

Ves mi documento adjuntado.

Que tenga suerte ...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/07/2023 08:17:33
Continuación...

Para ver el contenido del fichero ....Designer.vb, hay mas facile que mi manera que te envio ayer.

Es bastante de cliquas un elemento en el explorador de solución como mostrado aquí :

CarlosErrorForm6

El clic de un elemento abre el todo el fichero ....Designer.vb. Este es mas facile que de utilizar el menu del explorador de solución.

Después, para corregir los problemas, este es como he dicho.

Reflexiono al la fuente de estos problemas. Pienso que pueden venir de una copiada incompleta del Form desde una capeta de backup hasta el carpeta de desarrollo. En una carpeta, un Form tiene 3 ficheros : Form.vb, Form.Designer.vb y Form.resx. Idealmente, copiamos siempre los 3 ficheros. Y es necesario de recargar el proyecto.

CarlosErrorForm7

Estoy intentando de comprendre mas la fuente de estos problemas. Si encuentro buenas informaciones, te las enviaré.

Que tenga un buen día ...
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/07/2023 08:50:11
Continuación 2 ...

Estoy cierto que estos errores vienen de un accidente en el fichero .Designer.vb. No sé cuando se hace, pero se corregir como he dicho.

Mira el video en el fichero adjuntado.

Sobre mi Form1, hay 3 herramientas. Pongo un error sobre el Button1 y lo corregir.
Por lo tanto, sabemos que un error viene cuando existe una diferencia entre la pantalla Form1.Designer.vb y la pantalla Form1.vb (Diseño). El mensaje del error da buenas pistas para corregir.

Espero que este te ayudará.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/07/2023 15:25:35
MI ESTIMADO MUCHAS GRACIAS POR TU APOYO..ESTUVE FUERA POR ESTOS DIAS .. RECIEN LEO TUS MSM LOS VOY A VER Y TE ENVIO LOS PANTALLAZOS .. PERO SI ES CUANDO LE PONGO UNA IMAGEN EN UN BOTTON1 O DENTRO DE UN PICTUREBOX1..
TE ENVIARE..
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/07/2023 15:54:05
Bien pero dice me si pones la imagen con el código o por el cuadro de propiedades.

También, con las imágenes, serias bien que envias me el proyecto completo para que hago el mismo trabajo que sobre les imágenes.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/07/2023 19:18:15
WhatsApp-Image-2023-07-19-at-10.44.55
WhatsApp-Image-2023-07-19-at-10.43.10
ESTIMADO EN LA PRIMERA IMAGEN ASI SALE
EN EL SEGUNDO ESTOY GRABANDO LAS ACTAS DE ENTREGA Y ME SALE QUE SE REPITE VARIAS VECES EN DIFERENTES CAMPOS ALGO ESTOY HACIENDO MAL .. ENVIO EL PROYECTO
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 19/07/2023 20:23:42
OK, pero para la imagen, por favor, responde a mi pregunta : dice me si pones la imagen con el código o por el cuadro de propiedades.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 19/07/2023 21:38:36
LO QUE PASA ES QUE CUANDO AGREGO EN CUAQUIER FORMULARIO UN IMAGEN O UN ICONO DESAPARECE EL FORMULARIO..TE QUIERO PASAR MI PROYECTO PERO NO SE PUEDE LO COMPRIMI PERO NO SE ADJUNTA
TE ENVIO EL CODIGO DEL Buton (Guardar).. de la segunda imagen
Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
If TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Then
MsgBox("Lllenar Campos Obligatorios, no dejar Vacios", vbOKOnly + vbInformation, "AVISO")
TextBox6.Focus()
Exit Sub
End If

Try
conn.ConnectionString = combo
conn.Open()
Instruccion = New OleDbCommand("INSERT INTO ACTAS(FEntrega,Datos,Dni,Domicilio,Dinterno,FIngreso,Categoria,Placa,Marca,Color,Modelo,Motor,Serie,Descripcion,ExpAC,Noficios)" &
"values(FechaRegistro,TextBox5,TextBox6,TextBox7,TextBox9,TextBox10,TextBox12,TextBox13,TextBox14,TextBox15,TextBox16,TextBox17,TextBox18,TextBox8,TextBox20,TextBox21)", conn)
If MsgBox("¿Desea grabar estos datos.?", MsgBoxStyle.YesNo + vbInformation, "Cbv") = vbYes Then
Instruccion.Parameters.AddWithValue("@FEntrega", FechaRegistro.Text)
Instruccion.Parameters.AddWithValue("@Datos", TextBox5.Text)
Instruccion.Parameters.AddWithValue("@Dni", TextBox6.Text)
Instruccion.Parameters.AddWithValue("@Domicilio", TextBox7.Text)
Instruccion.Parameters.AddWithValue("@Dinterno", TextBox9.Text)
Instruccion.Parameters.AddWithValue("@FIngreso", TextBox10.Text)
Instruccion.Parameters.AddWithValue("@Categoria", TextBox12.Text)
Instruccion.Parameters.AddWithValue("@Placa", TextBox13.Text)
Instruccion.Parameters.AddWithValue("@Marca", TextBox14.Text)
Instruccion.Parameters.AddWithValue("@Color", TextBox15.Text)
Instruccion.Parameters.AddWithValue("@Modelo", TextBox16.Text)
Instruccion.Parameters.AddWithValue("@Motor", TextBox17.Text)
Instruccion.Parameters.AddWithValue("@Serie", TextBox18.Text)
Instruccion.Parameters.AddWithValue("@Descripcion", TextBox8.Text)
Instruccion.Parameters.AddWithValue("@ExpAC", TextBox20.Text)
Instruccion.Parameters.AddWithValue("@Noficios", TextBox21.Text)

If Instruccion.ExecuteNonQuery() = 1 Then
Dim SQL As String
SQL = "SELECT @@IDENTITY" ' DA EL ULTIMO REGISTRO iD CREADO PARA EL SISTEMA
Instruccion.CommandText = SQL
Dim UltimoID As Integer = Instruccion.ExecuteScalar()
Dim NuevoCodigo As String = "A" & String.Format("{0:D4}", UltimoID)

SQL = "UPDATE ACTAS SET Generado='" & NuevoCodigo & "' WHERE Id=" & UltimoID & ";"
Instruccion.CommandText = SQL

If Instruccion.ExecuteNonQuery() = 1 Then
MsgBox("Se Guardo Registro Correctamente", vbInformation, "Aviso")
Nacta.Text = "A" & String.Format("{0:D4}", (UltimoID + 1))
TxtCodigo.Text = NuevoCodigo

SQL = "UPDATE SANCIONES SET Nactas = @Nactas, FEntregaAC = @FEntregaAC WHERE Placa='" & TextBox13.Text & "';"
Instruccion.CommandText = SQL
Instruccion.Parameters.Clear()
Instruccion.Parameters.AddWithValue("@Nactas", NuevoCodigo)
Instruccion.Parameters.AddWithValue("@FEntregaAC", FechaRegistro.Text)

If Instruccion.ExecuteNonQuery() <> 1 Then

SQL = "delete from ACTAS where Id=" & UltimoID & ";"
Instruccion.CommandText = SQL
Instruccion.ExecuteNonQuery()
'error
MsgBox("No se guardo Registro Correctamente,porque Ya Salio", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If

Else
'error
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
Else
MsgBox("No se guardo Registro Correctamente", vbInformation, "Aviso")
conn.Close()
Instruccion.Dispose()
Exit Sub
End If
End If
Catch ex As Exception
'MsgBox("No se GUardo Registro....Error!, Verificar las Fechas o Datos Incorrectos", vbCritical, "Error al Guardar")
MsgBox("No se Guardo Registro....Error de Programación!, " & ex.Message, vbCritical, "Error al Guardar")
conn.Close()
Exit Sub
End Try
conn.Close()
' VaciarTodasZonasDeTexto()
' DataRegsitros()
BtnGuardar.Visible = False
ImpActa.Visible = True
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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 20/07/2023 08:23:08
Sí Carlos pero COMO LO HACES ? Bueno, he comprendido, lo haces con el cuadro de las propiedades.
La imagen debe ser en la carpeta "Ressourses", sino, no la ves en el cuadro de las propiedades.
Cuando la imagen es puesta en el PictureBox, probablemente que debes ajustar su propiedad "SizeMode".
He probado con el FrmActas de tu proyecto. Ver la imagen en el fichero adjuntado (CarlosErrorImagen1.zip).

Para, comprimir la carpeta de desarrollo del proyecto, debes cerrar los ficheros, y por lo tanto, cerrar VisualStudio y Access. Quizá es la razón porque no has podido lo hacer ayer.CarlosErrorZIP


Para el problema de los NActa, no necesario de enviar tu proyecto, ya lo tengo. Voy a poner los códigos que envias.

Te diré ...

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 20/07/2023 09:31:12
Ya la continuacion

Como la selección del registro de "SANCIONES" que debe ser actualizado es hecho con este código :
1
2
3
4
5
6
7
'... ... ...
                        SQL = "UPDATE SANCIONES SET Nactas = @Nactas, FEntregaAC = @FEntregaAC WHERE Placa='" & TextBox13.Text & "';"
                        Instruccion.CommandText = SQL
                        Instruccion.Parameters.Clear()
                        Instruccion.Parameters.AddWithValue("@Nactas", NuevoCodigo)
                        Instruccion.Parameters.AddWithValue("@FEntregaAC", FechaRegistro.Text)
'... ... ...
La clausula es WHERE Placa= por que en la realidad, no existe 2 vehículos con misma placa.
En la DB de pruebas, hay mismas placas y placas con valores 0, SPR, S/P/R, S.P.R, y también algunos registros duplicados.
A lugar de utilizar "Placa", podemos buscar otro campo : debes me decir cual campo existe de manera única en SANCIONES y en ACTAS para un mismo vehículo. Este puede ser "Motor" o "Chasis", pero "Placa" parece me la información la menos ausente.

No puedo te dar ejemplo exact porque no tengo tu DB, mía viene del 7/7/2023 y no están visibles los registros mostrados sobre tu imagen.

Pero, mi DB o tuya, ambos están una mezcla de pruebas a menudo incoherentes. Deberías comenzar con una DB limpiada, con registros realistas, sin informaciones ausentes.

Que tenga un buen dia
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 20/07/2023 18:38:35
Suplemento ...

La tabla SANCIONES recibe las informaciones cuando existe una infracción.
Cuando un vehículo comete varias infracciones, lo hace varios registros con mismos datos "Placa", "Motor" y "Chasis". Pues, estos campos no están únicos para este vehículo. Este es un problema.

El campo NActa es único, pero no ya existe en SANCIONES. Con este vista, pienso que la tabla ACTAS sola es mejora porque creas un registro cuando una infracción. Puedes siempre leer los datos de un vehículo y ver su varias infracciones, por separado, según NActas, y según sus fechas de decomisado y devuelto. En esta manera, estas fechas estan los campos unicos que tenemos necesarios, porque un vehículo no puede ser decomisado (o devuelto) el mismo dia.
Quizá debería reflexionar sobre esta pista.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 20/07/2023 19:31:07
Estimado..
Buenos Días y si lo buscamos con el campo "Generado"..? que dices...ya que son los campo Unico del la tabla "SANCIONES"...?
los datos estan ingresados de una manera desastroza,, hay en blanco S/P/R(Significa Sin Placa de Rodaje)
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 21/07/2023 15:25:37
Lo comprimi como me dijistes y nada no se puede enviar. .solo se `pudo enviar la DB
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 23/07/2023 10:15:26
Hola Carlos

Lo siento, no he visto tus ultimos mensajes mas temprano.

Voy los examinados ahora ....

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

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 23/07/2023 15:59:58
Hola,

Que peña que no quieres comunicar con mail directo. Este es ya 2 veces que veo tus mensaje mas tarde. Ayer, habría tenido mucho tiempo para responder a tu pregunta....
Te envia un mensaje privado con este sitio. Mira este mensaje.

Para tu proyecto, pienso que el campos Expediente puede ser bien. Quizá también el campo Generado. He trabajo con Expediente-Anterior.
Expediente-Anterior, o Generado, dan dificultades cuando creas el registro en ACTAS y su actualización en SANCIONES.
A este momento, no tengo la buena solución.

Ves mi documento adjuntado.

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

AutoNumerico

Publicado por carlos (68 intervenciones) el 24/07/2023 02:29:32
estimado cual es tu correo ..el mio es [email protected] para enviarte el proyecto
saludos .. gracias
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 24/07/2023 05:26:59
Estimado te explico el proceso del Proyecto:::ahi te envio un adjunto es excel, sobre la descripcion de los campos
saludos Gracias..
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: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

AutoNumerico

Publicado por Phil Rob (1554 intervenciones) el 24/07/2023 09:50:37
Muy bien tus explicaciones, es casi un manual del usuario.

Te envió un correo.
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

AutoNumerico

Publicado por carlos (68 intervenciones) el 26/07/2023 22:46:19
ESTIMADO TE ENVIO POR ESTE MEDIO,...NO PUDE ENVIAR POR GMAIL...NO SE PORQUE
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