Access - Access 2016. No coinciden los tipos.

   
Vista:

Access 2016. No coinciden los tipos.

Publicado por Jaime (60 intervenciones) el 29/07/2017 17:57:00
Estoy haciendo un Inventario para un almacén utilizando Access 2016 de 64bits, y tengo un formulario que se supone debe agregar o quitar las entradas y salidas respectivamente del inventario. El problema se encuentra al momento de guradar el registro, me arroja un mensaje de "No coinciden los tipos". Dejo el código para ver si pueden ayudarme:

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
Private Sub Guardar_click()
On Error GoTo err:
 
'Variables de ejecucion
Dim Id_elemento As Integer
Dim CantActualInv As Integer
Dim Cantidad_ent As Integer
Dim NvaCant As Integer
 
'Anular valores nulos en la asignacion de valores
Id_elemento = Nz(Me.Elemento.Value, 0)
Cantidad_ent = Nz(Me.Cantidad.Value, 0)
 
'Buscar datos en Lista de Inventarios
Dim Rst As DAO.Recordset
Dim sql As String
 
sql = "SELECT * FROM [Producto] US WHERE US.[Elemento]=" & Id_elemento
Set Rst = CurrentDb.OpenRecordset(sql)
 
If Rst.EOF Then
        MsgBox "No existente en inventario"
    Else
        'Accion al Encontrar el producto en lista de inventario
        'Actualizar Cantidad de Inventario
        CantidadActualInv = Rst![Cantidad]
        NvaCant = Cantidad_ent + CantidadActualInv
        Rst.Edit
        [Cantidad] = NvaCant
        Rst.Update
 
 
Rst.Close
Set Rst = Nothing
End If
DoCmd.GoToRecord , , acNext
 
Exit Sub
err:
MsgBox err.Description
End Sub

Incluyo el archivo para que puedan verlo.

El código está en el botón guardar del formulario entrada.
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

Access 2016. No coinciden los tipos.

Publicado por Anonimo (809 intervenciones) el 29/07/2017 19:30:32
Según estas líneas (transcripción del post inicial):

Rst.Edit
[Cantidad] = NvaCant
Rst.Update


No creo que se actualice nada en el recordset, si acaso algún campo no mencionado del formulario.

Es curioso que para tomar el valor actual se utilice esta sintaxis y no se respete después:
... CantidadActualInv = Rst![Cantidad] ...

No se necesitan tantas variables para hacer eso, además ... un EOF se puede producir con un millón de registros (o mas) en el recordset, la no existencia del valor se daría si no hay registros ( Rst.RecordCount = 0)

Para actualizar el valor ... muchas mas variables de las necesarias, pues tras verificar que los datos son validos la operación se puede hacer al mismo tiempo que la asignación o (mas simple), una consulta de actualización.
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

Access 2016. No coinciden los tipos.

Publicado por Jaime (60 intervenciones) el 31/07/2017 16:14:11
Bueno, la verdad es que estoy comenzando en el tema, tengo muy poco conocimiento en esto, en realidad todo eso surgió de tratar de adaptar un código ajéno a mi base de datos, la verdad creo que me perdí un poco, Agradezco el comentario, trataré de investigar un poco más.
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
Revisar política de publicidad