Access - AL HACER INSERT NO SE ORDENAN LOS CAMPOS

 
Vista:

AL HACER INSERT NO SE ORDENAN LOS CAMPOS

Publicado por Antonio (1 intervención) el 05/09/2007 16:46:21
Cuando ejecuto el comando INSERT con DoCmd.RunSQL sql ó Currentdb.Execute sql y luego quiero ordenar por algún campo, los registros que he insertado no se ordenan correctamente. Sin embargo si lo hago a mano directamente en la tabla, si que se ordenan bien.

El código que utilizo es:

sql = "INSERT INTO [Pedidos] (Num_Pedido,Fecha, Empresa, Ref_Interna, Originador, Res_Tecnico, Res_Economico, Ref_Oferta, Total, Observaciones) VALUES ( " & "' " & txtNum_Pedido & "'" & " , " & "' " & txtFecha & "'" & " , " & "' " & txtEmpresa & "'" & " , " & "' " & txtRefInt & "'" & " , " & "' " & txtOriginador & "'" & " , " & "' " & txtResTec & "'" & " , " & "' " & txtResEc & "'" & " , " & "' " & txtRef_Oferta & "'" & " , " & "' " & txtTotal & "'" & " , " & "' " & txtObservaciones & "' )"

DoCmd.RunSQL sql ' o Currentdb.execute sql

No sé si será problema de los tipos de datos. Por ejemplo Num_Pedido es String (por ejemplo 12312-BZ) y no se ordena bien si hago la inserción mediante ese codigo.

Gracias y un saludo
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 Alejandro

Ordenar registros después de realizar una inserción

Publicado por Alejandro (4142 intervenciones) el 18/08/2023 17:56:06
El problema que estás experimentando se debe a que, después de insertar los registros utilizando `DoCmd.RunSQL` o `CurrentDb.Execute`, no se garantiza que los registros se ordenarán automáticamente en la tabla. Para garantizar el ordenamiento correcto, puedes utilizar un enfoque diferente. En lugar de ordenar después de la inserción, puedes utilizar una consulta para recuperar los datos ya ordenados directamente desde la tabla. Aquí tienes cómo hacerlo:

Paso 1: Modificar el código de inserción

1. Cambia tu código de inserción para que también incluya el campo de fecha y hora en que se agregó el registro. Esto permitirá que puedas ordenar los registros según el orden de inserción.

1
2
3
sql = "INSERT INTO [Pedidos] (Num_Pedido, Fecha, Empresa, Ref_Interna, Originador, Res_Tecnico, Res_Economico, Ref_Oferta, Total, Observaciones, FechaInsercion) VALUES (" & _
      "'" & txtNum_Pedido & "', #" & Format(txtFecha, "yyyy-mm-dd") & "#, '" & txtEmpresa & "', '" & txtRefInt & "', '" & txtOriginador & "', '" & txtResTec & "', '" & _
      txtResEc & "', '" & txtRef_Oferta & "', '" & txtTotal & "', '" & txtObservaciones & "', Now())"

Paso 2: Crear una consulta ordenada

1. Crea una consulta en Access para recuperar los registros de la tabla "Pedidos" y ordénalos según el campo "FechaInsercion" de manera descendente (desde el más reciente al más antiguo). Puedes hacer esto en la vista de diseño de consulta utilizando la ordenación.

Paso 3: Mostrar los datos en un formulario o informe

1. Utiliza el resultado de la consulta ordenada para mostrar los datos en un formulario o informe. Puedes basar el formulario o informe en la consulta y así los registros se mostrarán ya ordenados según el campo de fecha y hora de inserción.

Este enfoque te permitirá ordenar los registros de acuerdo con el momento de inserción, lo que garantiza que los registros nuevos se muestren en el orden correcto. Recuerda que, en Access, el ordenamiento en una tabla no está garantizado a menos que utilices una consulta específica o una vista para recuperar los datos ordenados.
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