visual usar una son que lista las etiquetas etiqueta ejemplo concepto como codigos c# vba ms-access access-vba

usar - que es una etiqueta en c#



Establecer la línea de comando Opción para acceder a VBA (2)

La mejor manera debe ser encontrar la aplicación asociada al tipo de archivo y luego iniciarla con los argumentos que necesita (incluido el archivo que se va a abrir).

Puede averiguar cómo determinar la aplicación predeterminada aquí .

Cuando inicio el proceso desde C #, utilizo el siguiente código:

ProcessStartInfo psi = new ProcessStartInfo(@"C:/MyProgram.exe"); psi.Arguments = "1"; Process p = Process.Start(psi);

¿Es posible establecer el valor de la variable global en el código VBA?

ProcessStartInfo psiMDB = new ProcessStartInfo(@"C:/MyProgram.mdb"); psiMDB.Arguments = "1"; Process p = Process.Start(psiMDB);

Si intento establecer un parámetro, tengo este error:


Necesita combinar su ruta a MS Access con su DB como parámetro.

string dbPath = @"c:/MyProgram.mdb"; string pathToAccess = @"C:/Program Files (x86)/Microsoft Office/root/Office16/MSACCESS.EXE"; ProcessStartInfo psiMDB = new ProcessStartInfo(pathToAccess); psiMDB.Arguments = dbPath + " /cmd 1"; Process p = Process.Start(psiMDB);

Además, no olvide adjuntar /cmd antes de colocar el siguiente parámetro.

Código de VBA adicional para leer Argumentos de inicio

Option Compare Database Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long) Sub PrintStartupArguments() MsgBox CmdLineToStr() End Sub Function CmdLineToStr() As String Dim Buffer() As Byte Dim StrLen As Long Dim CmdPtr As Long CmdPtr = GetCommandLine() If CmdPtr > 0 Then StrLen = lstrlenW(CmdPtr) * 2 If StrLen > 0 Then ReDim Buffer(0 To (StrLen - 1)) As Byte CopyMemory Buffer(0), ByVal CmdPtr, StrLen CmdLineToStr = Buffer End If End If End Function