Access - Consulta de datos anexados desde vba

 
Vista:

Consulta de datos anexados desde vba

Publicado por brais penela (3 intervenciones) el 13/11/2018 19:32:45
Buenas tardes, estoy intentando ( y digo bien porque llevo varias horas probando el siguiente código y no se porqué no va...) anexar a una tabla tblConceptos los datos básicos del concepto de una factura pero no va. llegado el momento de ejecutar la consulta si lo imprimo por Debug y lo pego en una consulta funciona pero directamente desde el codigo no.


IDEAS???


dejo el codigo

Aviso: como aún estoy en desarrollo no está muy depurado ( ya sabeis como va...)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Private Sub idFactura_DblClick(Cancel As Integer)
 
On Error GoTo errorfactura:
 
 
    Dim db
    Dim rs
    Dim sql As String
    Dim newFactura As String
    Dim rs1
    Dim sql1 As String
    Dim sql2 As String
 
    Set db = CurrentDb
 
 
    sql = "SELECT Left([idFactura],4) AS añoFactura, Count(Left([idFactura],4)) AS nFacturas, Year(Now()) & '/' & Format([nFacturas]+1,'00') AS facturaSiguiente FROM tblTraballosFasesEntregas GROUP BY Left([idFactura],4) HAVING (((Left([idFactura],4))=Year(Now())));"
 
    Set rs = CurrentDb.OpenRecordset(sql)
 
    newFactura = rs!facturaSiguiente
 
    Debug.Print newFactura
 
 
 
    Dim Respuesta, Estilo, Titulo, Mensaje
 
 
    Mensaje = "¿Quieres crear una nueva FACTURA?"
    Titulo = "Crear nueva FACTURA"
    Estilo = vbYesNo + vbQuestion + vbDefaultButton2
    Respuesta = MsgBox(Mensaje, Estilo, Titulo)
 
    If Respuesta = vbYes Then
        If Me.idFactura <> "" Then
 
            Mensaje1 = "Ya existe una factura para esta entrega. Pulsa Aceptar para modificar la FACTURA."
            Titulo1 = "Modificar FACTURA"
            Estilo1 = vbOKCancel + vbCritical + vbDefaultButton2
            Respuesta1 = MsgBox(Mensaje1, Estilo1, Titulo1)
 
            If Respuesta1 = vbOK Then
 
                MsgBox "Modificar factura"
 
            Else
 
                MsgBox "salir"
 
            Exit Sub
            End If
        Else
            MsgBox "Nueva FACTURA con número: " & newFactura
 
 
            sql1 = "SELECT tblTraballos.idTraballo, tblTraballosFases.idFase, tblTraballosFasesEntregas.IdEntrega, tblTraballos.txtDenominacion, Round([pctFactura]*[pctImporte]*[tbltraballos].[dblImporte],2) AS importe " _
                & " FROM tblTraballos INNER JOIN (tblTraballosFases INNER JOIN tblTraballosFasesEntregas ON (tblTraballosFases.idFase = tblTraballosFasesEntregas.idFase) AND (tblTraballosFases.idTraballo = tblTraballosFasesEntregas.idTraballo)) ON tblTraballos.idTraballo = tblTraballosFases.idTraballo " _
                & " WHERE (((tblTraballos.idTraballo)='" & Me.idTraballo & "') AND ((tblTraballosFases.idFase)=" & Me.idFase & ") AND ((tblTraballosFasesEntregas.IdEntrega)=" & Me.IdEntrega & "));"
 
            Set rs1 = CurrentDb.OpenRecordset(sql1)
 
            Dim nuevoimporte As Double
            Dim nuevoconcepto As String
 
 
            nuevoimporte = rs1!importe
 
 
            nuevoconcepto = rs1!txtDenominacion
 
 
            'Me.idFactura = newFactura
 
            sql2 = "insert into tblconceptos ( idfactura, dblimporte, txtconcepto ) " _
            & " select '" & newFactura & "' as nuevonumerofactura, " & nuevoimporte & " as nuevoimporte, '" & nuevoconcepto & "' as nuevoconcepto;"
 
 
            Debug.Print sql2
 
            db.Execute sql2
            DoCmd.Close acForm, Me.Name
 
        End If
    Else
        MsgBox "salir"
        Exit Sub
    End If
 
    Me.idFactura = newFactura
    Set rs = Nothing
    Set rs1 = Nothing
    Set db = Nothing
 
errorfactura:
 MsgBox err.Number & err.Description
 
 
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

Consulta de datos anexados desde vba

Publicado por brais penela (3 intervenciones) el 13/11/2018 20:03:29
Acabo de fijarme en una cosa.
En la tabla tblConceptos tego un campo autonumérico y cada vez que ejecuto la Sub es como si se creasen y borrasen los registros.
Me explico el autonumerico está en 100 el siguiente sería el 101 ejecuto. Aparentemente no sucede nada. Entro en la tabla ordeno los registros y tampoco sucede nada. añado manualmente un registro en la tabla y el autonumerico se pone en 102. si ejecuto 10 veces seguidas se salta todos esos registros.
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