Rellenar combobox desde base de datos externa
Publicado por Gonzalo (3 intervenciones) el 09/08/2017 03:21:51
Buenas, soy nuevo tanto en el sitio como en vba access. Paso a comentar, estoy con un proyecto de base de datos access 2013, decidí dividir una base (back-end y front-end) al back-end lo protegí con contraseña y desde el front-end realice una conexion por vba...
El tema es que ahora tengo un combobox que quiero rellenar con los datos de una de las tablas del back-end al cargar un formulario
pero me da el siguiente error...
Se ha producido el error '6014' en tiempo de ejecución
para poder utilizar este método, la propiedad TipoDeOrigenDeLaFila
debe establecerse en Lista de Valores
el recordset funciona ya que si pongo
carga el primer registro en el cuadro de texto, pero no puedo rellenar el combobox ni un listbox...
Agradecería mucho la ayuda que me puedan proporcionar.
Saludos
Gonzalo
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
Sub AbriendoConexion()
On Error Resume Next 'CONTINUA CON LA SIG LINEA SI ENCUENTRA UN ERROR
RutaActual = DLookup("CampoRUTA", "tablaRuta", "CampoRUTA <> ''") 'CAPTURA EN UNA VARIABLE LA RUTA ALMACENADA EN UNA TABLA
instruccion = "SELECT * FROM USUARIOS" '
miconexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & RutaActual & "; Jet OLEDB:Database Password=Kromium3541" 'CONECTA CON LA BASE Y PASA CONTRASEÑA
If Err.Number = -2147467259 Then 'SI NO ENCUENTRA LA BASE REDEFINE LA RUTA DEL ARCHIVO
Dim ventana As FileDialog 'DIMENSIONA VENTANA
Dim obj As Variant 'DIMENSIONA OBJETO
Dim ruta As String 'DIMENSIONA RUTA
Set ventana = Application.FileDialog(msoFileDialogFilePicker) 'INICIA VENTANA
With ventana 'CON VENTANA
.Title = "Elige la BD" 'TITULO DE VENTANA
.Filters.Add "Base de Datos", "*.accdb", 1 'FILTRA SOLO ARCHIVOS ACCDB
.Show 'MUESTRA LA VENTANA
For Each obj In .SelectedItems 'PARA CADA OBJETO EN LA SELECCION
ruta = CStr(obj) 'INICIA RUTA CON EL ARCHIVO SELECCIONADO
DoCmd.SetWarnings False 'DESACTIVA LOS AVISOS
instruccion1 = "UPDATE tablaRUTA SET CampoRUTA = '" & ruta & "'" 'ACTUALIZA EL VALOR DE LA TABLA CON LA NUEVA RUTA SELECCIONADA
DoCmd.RunSQL instruccion1 'CORRE LA INSTRUCCION
DoCmd.SetWarnings True 'ACTIVA LOS AVISOS
Next obj
End With
miconexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & ruta & "; Jet OLEDB:Database Password=Kromium3541" 'CONECTA LA BASE CON LA NUEVA RUTA
End If 'FIN DE LA CONEXION
mirecordset.Open instruccion, miconexion, adOpenDynamic, adLockOptimistic 'ABRE LA BASE PARA TRABAJAR
End Sub
Sub CerrandoConexion()
mirecordset.Close
Set mirecordset = Nothing
miconexion.Close
Set miconexion = Nothing
End Sub
El tema es que ahora tengo un combobox que quiero rellenar con los datos de una de las tablas del back-end al cargar un formulario
1
2
3
4
5
6
7
8
Private Sub form_load()
Do Until mirecordset.EOF
combo_box.AddItem mirecordset!Nombre
mirecordset.MoveNext
Loop
End Sub
pero me da el siguiente error...
Se ha producido el error '6014' en tiempo de ejecución
para poder utilizar este método, la propiedad TipoDeOrigenDeLaFila
debe establecerse en Lista de Valores
el recordset funciona ya que si pongo
1
cuadro_de_texto = mirecordset!Nombre
carga el primer registro en el cuadro de texto, pero no puedo rellenar el combobox ni un listbox...
Agradecería mucho la ayuda que me puedan proporcionar.
Saludos
Gonzalo
Valora esta pregunta
0