ms access - txt - Importación de un módulo al acceso mediante programación desde un archivo*.cls o similar
importar txt vba access (2)
Si abre Microsoft Access, abra la ventana visual básica para que pueda ver la lista de módulos y códigos en su proyecto de Access. Puede arrastrar un archivo de texto (txt, cls, bas, etc.) desde el explorador de Windows y colocarlo en la carpeta de su módulo.
Esta acción de arrastrar y soltar importará el código en el archivo de texto en su proyecto y le pedirá que lo guarde (con el nombre predeterminado es el nombre del archivo que eliminó).
¿Hay alguna manera de hacer esto programáticamente usando VBA? Parece una tarea simple que debería tener una solución simple, pero he estado investigando durante días y parece que no puedo encontrar una forma sencilla de hacerlo.
Puede usar el método VBComponents.Import
del modelo de objetos VBE. Consulte el tema Método de importación (Modelo de objetos del complemento VBA) en el sistema de ayuda de Access para obtener más información.
Este código de muestra importó modImportMe.bas desde la carpeta donde está almacenada mi base de datos.
Dim strFile As String
Dim strPath As String
Dim strProject As String
strFile = "modImportMe.bas"
strPath = CurrentProject.Path & Chr(92) & strFile
Debug.Print strPath
If Len(Dir(strPath)) > 0 Then
''VBE.ActiveVBProject.VBComponents.Import strPath
VBE.VBProjects("Database2").VBComponents.Import strPath
DoCmd.RunCommand acCmdCompileAndSaveAllModules
Else
MsgBox "File not found: " & strPath, vbOKOnly + vbCritical, "Oops!"
End If
Tenga en cuenta que esta base de datos en realidad contiene solo un VBProject
, por lo que podría haberlo referenciado con VBE.ActiveVBProject
. Sin embargo, si el suyo incluye más de un VBProject
, es más seguro referirse a él por su nombre, y VBProjects("<Name>")
debería funcionar incluso si solo hay uno.
Sí, ese es el comando LoadFromText
para usar.
Uso:
LoadFromText acModule, "NameOfObject", "FileName"