Pergunta : VBA para atualizar valores do campo em uma tabela durante um laço

O bloco de código abaixo das folhas específicas das importações de 3 limas diferentes de Excel em uma tabela.  Imediatamente depois que o `Year1.xlsx' é importado no tblMaster do `', eu preciso de atualizar o valor para cada registro sob o `do nome de campo fldYear' na tabela do alvo (tblMaster do `').  o valor que do

The atualizaria a é do controle de formulário de “[formulários]! [frmName]! [txtYear1]”. o

Then quando o `Year2.xlsx' é importado, `fldYear' seria atualizado com o valor alistado em “[formulários]! [frmName]! [txtYear2]”.  O mesmo terno seria seguido então ao importar o `Year3.xlsx”. introspecção do

Any neste? class= " lineNumbers " >
1 do >
: 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 secundário >Public do id= " codeSnippet794610 " do >
 do myPath (j)) então

Ajustar o objXL = o CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdadeiro
    Com objXL
        Para i = 1 a. Worksheets.Count
            Se InStr (. Folhas (i). Nome, “widget”) então
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tblMaster”, myPath (j), verdadeiro. Folhas (i). Nome &”! A: M "
            Terminar se
        Em seguida
    Extremidade com
    objXL.Quit
    Ajustar o objXL = nada

    Mais
    iCnt = iCnt + 1
Terminar se
Em seguida
Se iCnt = 3 então
Folhas de MsgBox as “não existem. Retirando o submarino agora! ”, vbInformation, “erro”
Retirar o submarino
Terminar se
class= > " desobstruído " de 
class= do

Resposta : VBA para atualizar valores do campo em uma tabela durante um laço

testar isto

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 secundário público ()
objXL não ofuscante como o objeto
Estábulo não ofuscante, xlPath como a corda, i como o inteiro

myPath não ofuscante (), j, iCnt como o inteiro
myPath = disposição (“\ \ usuário \ Year1.xlsx”, _
               “\ \ usuário \ Year2.xlsx”, _
               “\ \ usuário \ Year3.xlsx”)
Para j = LBound (myPath) a UBound (myPath)
    
Se Dir ("" do myPath (j) <> ) então

Ajustar o objXL = o CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdadeiro
    Com objXL
        Para i = 1 a. Worksheets.Count
            Se InStr (. Folhas (i). Nome, “widget”) então
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tblMaster”, myPath (j), verdadeiro. Folhas (i). Nome &”! A: M "
            Terminar se
        Em seguida
        
    Extremidade com
    objXL.Quit
    Ajustar o objXL = nada
    Selecionar o caso j
        Caso 0
        fldYear='" ajustado do tblMaster atualização de CurrentDb.Execute da “& [formulários]! [frmName]! [txtYear1] & “'onde fldYear é nulo”
        Caso 1
        fldYear='" ajustado do tblMaster atualização de CurrentDb.Execute da “& [formulários]! [frmName]! [txtYear2] & “'onde fldYear é nulo”
        Caso 2
        fldYear='" ajustado do tblMaster atualização de CurrentDb.Execute da “& [formulários]! [frmName]! [txtYear3] & “'onde fldYear é nulo”
        
        
    Extremidade seleta
    Mais
    iCnt = iCnt + 1
Terminar se
Em seguida
Se iCnt = 3 então
Folhas de MsgBox as “não existem. Retirando o submarino agora! ”, vbInformation, “erro”
Retirar o submarino
Terminar se

Terminar o submarino
Outras soluções  
 
programming4us programming4us