Obtener una lista de tablas de la base de datos de Access<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy tratando de crear un formulario de usuario en el generador de aplicaciones, utilizando funciones nativas y, por qué no, JSL. Tengo las ideas y ahora tengo que seguir...
En primer lugar, ¿alguien sabe cómo puedo obtener una lista de todas las tablas en mi base de datos de Access? Por supuesto, esa lista estaría en el formulario de usuario.
Gracias por su apoyo, estoy empezando a manipular JMP 11.
Re: Obtener una lista de tablas de la base de datos de Access- Haz un módulo en access y pega este código.
- Ejecutar en la ventana de depuración
- Copie la lista de tablas generada en la ventana inmediata.
Public Sub List_fields_in_tables()
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
Debug.Print
Debug.Print
Debug.Print tdf.Name
Debug.Print "----------------------------------------"
For Each fld In tdf.Fields
Debug.Print fld.Name & Space(20 - Len(fld.Name)) & fld.Size & Space(10 - Len(Str(fld.Size))) & FDataType(fld.Type)
Next fld
End If
Next tdf
End Sub
Private Function FDataType(intType As Integer) As String
Dim RetString As String
Select Case intType
Case 1
RetString = "Boolean"
Case 8
RetString = "Date"
Case 3
RetString = "Integer"
Case 7
RetString = "Double"
Case 10
RetString = "String"
Case 4
RetString = "Long Integer"
Case Else
RetString = "Unknown"
End Select
FDataType = RetString
End Function

Re: Obtener una lista de tablas de la base de datos de AccessGracias Eric,
solo para ser muy claro y más completo, luego usé este:
"SELECCIONE MSysNameMap.Name DESDE MSysNameMap DONDE (MSysNameMap.Type = 1)"
y luego:
para cada fila (List1 << append(:Name))
--> funciona perfecto!
Gracias de nuevo.
Re: Obtener una lista de tablas de la base de datos de AccessLa mayoría de las bases de datos tienen vistas del sistema en las que puede escribir consultas SQL para obtener listas de todas las tablas en la base de datos que coinciden con una cláusula WHERE, etc.No tengo MS Access, pero haciendo algunas búsquedas en Google, algo como esto puede funcionar para usted:
SELECCIONE MSysObjects.Name DESDE MSysObjects DONDE (MSysObjects.Type = 1);
También puedes probar " DONDE (MSysObjects.Tipo = 6) " como la cláusula WHERE.Entonces podrías usar el JSL Abrir base de datos función para enviar esa consulta a MS Access, lo que le daría una tabla de datos JMP con los nombres de la tabla de Access, que luego podría iterar usando Por cada fila.
Aquí hay enlaces a donde encontré la información de MS Access:
ms access - instrucción sql para devolver todos los campos de todas las tablas - CODE Q&A Resuelto
Uso de MsysObjects
HH,
eric
Re: Obtener una lista de tablas de la base de datos de AccessGracias por su ayuda.
Este es un archivo de ayuda que le permite conectarse a una base de datos. Me gustaría crearme una lista de todos los nombres de tablas disponibles en mi base de datos.
algo como:
x=lista()
para cada tabledef en my_database
x1<
insertar en (x, x1);
finalmente, es un poco complicado. Me gustaría crear automáticamente una declaración SQL con lo que está almacenado en una tabla JMP. Casi listo, estoy seguro... . Pero el paso anterior, me gustaría permitir que los usuarios almacenen fácilmente información en esa tabla JMP. Tiene que seleccionar en dos listas, primero la tabla en la base de datos, luego la característica que le interesa en esta tabla. Luego, al hacer clic en "Aceptar", su elección se almacena en la tabla JMP. Puedo compilar una instrucción SQL para obtener datos de la base de datos para todas las opciones almacenadas en esa tabla JMP.
Espero ser claro... ¿ambicioso?
Re: Obtener una lista de tablas de la base de datos de Accesshttp://www.jmp.com/software/whitepapers/pdfs/102427_jmp_odbc.pdf
Encontré esto en línea y ofrece instrucciones paso a paso para hacer una conexión entre una base de datos y JMP y puede continuar desde allí.
Saludos
día