Consultar BD Access mediante EXCEL 2007
¿Qué tal?
Tengo un combobox (cbxmateriales) en una hoja de excel en el cual quiero que aparezcan datos de una tabla (materiales) que tengo en un archivo de Acces (C:\Documents and Settings\Rafael Yan\Escritorio\Compras\Compras Bogavante.accdb). La tabla tiene 3 campos: ID, Descripcion, Status. Para esto programé en VB la rutina que se muestra abajo. Por alguna razón que desconozco, la consulta funciona para traer el ID y el Status (el combo se carga correctamente), pero en el momento que le indico traer la descripcion, me marca el siguiente error: "Se ha producido el error '2147352571 (80020005)' en tiempo de ejecución: Tipo Incorrecto", al momento de depurar, el error está en la línea ".additem rs!descripcion" (al poner el cursor sobre este texto marca rs!descripcion = nulo). Me gustaría saber ¿porqué la rutina me marca error con "descripcion" y no cuando indico "id" o "status"?
Private Sub Worksheet_Activate()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SQL As String
Set Conn = New ADODB.Connection
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Documents and Settings\Rafael Yan\Escritorio\Compras\Compras Bogavante.accdb"
Set rs = New ADODB.Recordset
SQL = "select id from materiales" '<-- aquí intenté id, status y descripcion (por separado)
rs.Open SQL, cnn, adOpenStatic
rs.MoveFirst
With cbxMateriales
.Clear
Do
.AddItem rs!ID <-- aquí marca el error con rs!descripcion
rs.MoveNext
Loop Until rs.EOF
End With
End Sub
Como referencia, la tabla Materiales tiene los siguientes datos:
Id descripción status
1 Verdadero <-- Descripción en blanco
2 Acero Verdadero
3 Cobre Verdadero
4 Concreto Verdadero
5 Fo.Fo. Verdadero
6 Galvanizado Verdadero
7 Hierro Dúctil Verdadero
8 Latón Niquelado Verdadero
9 Neopreno Verdadero
10 Plomo Verdadero
11 Polietileno A.D. Verdadero
12 Polipropileno Verdadero
13 PVC Verdadero
Tengo un combobox (cbxmateriales) en una hoja de excel en el cual quiero que aparezcan datos de una tabla (materiales) que tengo en un archivo de Acces (C:\Documents and Settings\Rafael Yan\Escritorio\Compras\Compras Bogavante.accdb). La tabla tiene 3 campos: ID, Descripcion, Status. Para esto programé en VB la rutina que se muestra abajo. Por alguna razón que desconozco, la consulta funciona para traer el ID y el Status (el combo se carga correctamente), pero en el momento que le indico traer la descripcion, me marca el siguiente error: "Se ha producido el error '2147352571 (80020005)' en tiempo de ejecución: Tipo Incorrecto", al momento de depurar, el error está en la línea ".additem rs!descripcion" (al poner el cursor sobre este texto marca rs!descripcion = nulo). Me gustaría saber ¿porqué la rutina me marca error con "descripcion" y no cuando indico "id" o "status"?
Private Sub Worksheet_Activate()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SQL As String
Set Conn = New ADODB.Connection
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Documents and Settings\Rafael Yan\Escritorio\Compras\Compras Bogavante.accdb"
Set rs = New ADODB.Recordset
SQL = "select id from materiales" '<-- aquí intenté id, status y descripcion (por separado)
rs.Open SQL, cnn, adOpenStatic
rs.MoveFirst
With cbxMateriales
.Clear
Do
.AddItem rs!ID <-- aquí marca el error con rs!descripcion
rs.MoveNext
Loop Until rs.EOF
End With
End Sub
Como referencia, la tabla Materiales tiene los siguientes datos:
Id descripción status
1 Verdadero <-- Descripción en blanco
2 Acero Verdadero
3 Cobre Verdadero
4 Concreto Verdadero
5 Fo.Fo. Verdadero
6 Galvanizado Verdadero
7 Hierro Dúctil Verdadero
8 Latón Niquelado Verdadero
9 Neopreno Verdadero
10 Plomo Verdadero
11 Polietileno A.D. Verdadero
12 Polipropileno Verdadero
13 PVC Verdadero
Respuesta de blooddragon
1