Cuestión : VBA para poner al día valores del campo en una tabla durante un lazo

El bloque de código debajo de las hojas de trabajo específicas de las importaciones a partir de 3 diversos archivos de Excel en una tabla.  Inmediatamente después que el `Year1.xlsx' se importa en tblMaster del `', necesito poner al día el valor para cada expediente bajo `del nombre de campo fldYear' en la tabla de la blanco (tblMaster del `').  ¡el valor del

The que se pondría al día a es del control de forma de “[las formas]! ¡[frmName]! [txtYear1]”. ¡el

Then cuando se importa el `Year2.xlsx', `fldYear' sería puesto al día con el valor enumerado en “[las formas]! ¡[frmName]! [txtYear2]”.  Entonces el mismo juego sería seguido al importar el `Year3.xlsx”. ¿penetración del

Any en esto? class= " lineNumbers " >
1 del >
: 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: class= codeBody " prettyprint " ImportExcelSheetsfIANL secundario >Public del id= " codeSnippet794610 " del >
 (del myPath (j)) entonces

Fijar el objXL = CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdad
    Con el objXL
        Para i = 1 a. Worksheets.Count
            Si InStr (. Hojas de trabajo (i). Nombre, “aparato”) entonces
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tblMaster”, myPath (j), verdad. Hojas de trabajo (i). ¡Nombre y”! A: M "
            Terminar si
        Después
    Extremo con
    objXL.Quit
    Fijar el objXL = nada

    
    iCnt = iCnt + 1
Terminar si
Después
Si iCnt = 3 entonces
Hojas de trabajo de MsgBox las “no existen. ¡Saliendo el submarino ahora! ”, vbInformation, “error”
Salir el submarino
Terminar si
class= > " claro " de 
class= del

Respuesta : VBA para poner al día valores del campo en una tabla durante un lazo

probar esto

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:
ImportExcelSheetsfIANL secundario público ()
objXL dévil como objeto
Establo dévil, xlPath como secuencia, i como número entero

myPath dévil (), j, iCnt como número entero
myPath = arsenal (“\ \ servidor \ Year1.xlsx”, _
               “\ \ servidor \ Year2.xlsx”, _
               “\ \ servidor \ Year3.xlsx”)
Para j = LBound (myPath) a UBound (myPath)
    
Si Dir "" (del myPath (j) <> ) entonces

Fijar el objXL = CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdad
    Con el objXL
        Para i = 1 a. Worksheets.Count
            Si InStr (. Hojas de trabajo (i). Nombre, “aparato”) entonces
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tblMaster”, myPath (j), verdad. Hojas de trabajo (i). ¡Nombre y”! A: M "
            Terminar si
        Después
        
    Extremo con
    objXL.Quit
    Fijar el objXL = nada
    Seleccionar el caso j
        Caso 0
        ¡fldYear='" determinado del tblMaster de la actualización de CurrentDb.Execute “y [formas]! ¡[frmName]! [txtYear1] y “'donde fldYear está nulo”
        Caso 1
        ¡fldYear='" determinado del tblMaster de la actualización de CurrentDb.Execute “y [formas]! ¡[frmName]! [txtYear2] y “'donde fldYear está nulo”
        Caso 2
        ¡fldYear='" determinado del tblMaster de la actualización de CurrentDb.Execute “y [formas]! ¡[frmName]! [txtYear3] y “'donde fldYear está nulo”
        
        
    Extremo selecto
    
    iCnt = iCnt + 1
Terminar si
Después
Si iCnt = 3 entonces
Hojas de trabajo de MsgBox las “no existen. ¡Saliendo el submarino ahora! ”, vbInformation, “error”
Salir el submarino
Terminar si

Terminar el submarino
Otras soluciones  
 
programming4us programming4us