
Problema con codigo sql en access
Publicado por Felipe (2 intervenciones) el 28/09/2015 17:41:15
Tengo un problema con el código sql pero no entiendo que es lo que sucede, tengo el access en la misma carpeta con el nombre de "datos" por lo que lo debería leer correctamente, cuando hago sql sin variable x me lo da sin problemas, pero cuando quiero determinar un equipo me lansa error "no se han especificado valores para algunos parámetros requeridos" ayuda :cc
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
Sub escribiraccess()
Dim cs As String
Dim sPath As String
Dim sql As String
Dim cn As ADODB.Connection
sPath = ThisWorkbook.Path & "\datos.accdb"
cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Persist Security Info=False;"
Set cn = New ADODB.Connection
cn.Open cs
sql = "insert into tabla1 (nombre, apellido) values('" & Cells(1, 1).Value & "', '" & Cells(1, 2).Value & "')"
cn.Execute sql
cn.Close
Set cn = Nothing
End Sub
Sub Trapecio_Haga_clic_en()
Dim X As String
Dim cs As String
Dim sPath As String
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim n As Integer
X = InputBox("codigo del equipo", "consulta")
sPath = ThisWorkbook.Path & "\datos.accdb"
cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Persist Security Info=False;"
Set cn = New ADODB.Connection
cn.Open cs
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
'sql = "select * from tabla1"
sql = "select Equipos.Codeq, Actividades.Desact, OrdenDeMantencion.CantidadDeMaterial, Materiales.Descmat, Materiales.UnidadMaterial, Materiales.ValorUnidad FROM Equipos, Materiales, Actividades, OrdenDeMantencion WHERE Equipos.Codeq = OrdenDeMantencion.Codeq AND Materiales.Codmat=OrdenDeMatencion.Codmat AND Actividades.Codact= OrdenDeMantencion.Codact AND Equipos.Codeq=" & X
rs.Open sql, cn
Range("c1:z10000").Clear
' Mostrar campos de select como encabezados de columnas
Dim fld As Field
'Set rst = Me.Recordset
n = 67
For Each fld In rs.Fields
' Print field names.
'Debug.Print fld.Name
Range(Chr(n) & "1").Select
ActiveCell.FormulaR1C1 = fld.Name
n = n + 1
Next
Range("C2").CopyFromRecordset rs
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
- trabajo.rar(62,9 KB)
Valora esta pregunta


0