Frage : VBA zu den Updatefeldwerten auf einer Tabelle während einer Schleife

Der Block des Codes unter spezifischen Arbeitsblättern der Importe von 3 verschiedenen Excel-Akten in eine Tabelle.  Sofort nachdem `Year1.xlsx' in `tblMaster' importiert wird, muss ich den Wert für jede Aufzeichnung unter fldYear Feldname `aktualisieren' dem in der Zieltabelle (`tblMaster').  

The Wert, den es zu aktualisieren würde, ist von der Formsteuerung von „[Formen]! [frmName]! [txtYear1]“.

Then, wenn `Year2.xlsx' importiert wird, das `, das' fldYear ist, würde mit dem Wert aktualisiert, der in „verzeichnet wurde [Formen]! [frmName]! [txtYear2]“.  Dann würde die gleiche Klage gefolgt, als, `Year3.xlsx importierend“.

Any Einblick in dieses?
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:
Public VorImportExcelSheetsfIANL ()
Schwaches objXL als Gegenstand
Schwacher Stall, xlPath als Schnur, i als ganze Zahl

Schwaches myPath (), J, iCnt als ganze Zahl
myPath = Reihe („\ \ Bediener \ Year1.xlsx“, _
               „\ \ Bediener \ Year2.xlsx“, _
               „\ \ Bediener \ Year3.xlsx“)
Für J = LBound (myPath) zu UBound (myPath)
    
Wenn Dir (myPath (j)) <> "" dann

objXL = CreateObject („Excel.Application“) einstellen
    objXL.Workbooks.Open myPath (j), zutreffend
    Mit objXL
        Für i = 1 zu. Worksheets.Count
            Wenn InStr (. Arbeitsblätter (i). Name, „Widget“) dann
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tblMaster“, myPath (j), zutreffend. Arbeitsblätter (i). Name u.“! A: M "
            Beenden wenn
        Zunächst
    Ende mit
    objXL.Quit
    objXL einstellen = nichts

    Sonst
    iCnt = iCnt + 1
Beenden wenn
Zunächst
Wenn iCnt = 3 dann
MsgBox „Arbeitsblätter existieren nicht. Unterseeboot jetzt herausnehmen! “, vbInformation, „Störung“
Unterseeboot herausnehmen
Beenden wenn

Antwort : VBA zu den Updatefeldwerten auf einer Tabelle während einer Schleife

dieses prüfen

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:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
Allgemeines VorImportExcelSheetsfIANL ()
Schwaches objXL als Gegenstand
Schwacher Stall, xlPath als Schnur, i als ganze Zahl

Schwaches myPath (), J, iCnt als ganze Zahl
myPath = Reihe („\ \ Bediener \ Year1.xlsx“, _
               „\ \ Bediener \ Year2.xlsx“, _
               „\ \ Bediener \ Year3.xlsx“)
Für J = LBound (myPath) zu UBound (myPath)
    
Wenn Dir (myPath (j)) <> "" dann

objXL = CreateObject („Excel.Application“) einstellen
    objXL.Workbooks.Open myPath (j), zutreffend
    Mit objXL
        Für i = 1 zu. Worksheets.Count
            Wenn InStr (. Arbeitsblätter (i). Name, „Widget“) dann
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tblMaster“, myPath (j), zutreffend. Arbeitsblätter (i). Name u.“! A: M "
            Beenden wenn
        Zunächst
        
    Ende mit
    objXL.Quit
    objXL einstellen = nichts
    Fall J vorwählen
        Rechtssache 0
        CurrentDb.Execute „Update tblMaster gesetztes fldYear='" u. [Formen]! [frmName]! [txtYear1] u. „', wo fldYear, ist ungültig“
        Rechtssache 1
        CurrentDb.Execute „Update tblMaster gesetztes fldYear='" u. [Formen]! [frmName]! [txtYear2] u. „', wo fldYear, ist ungültig“
        Rechtssache 2
        CurrentDb.Execute „Update tblMaster gesetztes fldYear='" u. [Formen]! [frmName]! [txtYear3] u. „', wo fldYear, ist ungültig“
        
        
    Ende auserwählt
    Sonst
    iCnt = iCnt + 1
Beenden wenn
Zunächst
Wenn iCnt = 3 dann
MsgBox „Arbeitsblätter existieren nicht. Unterseeboot jetzt herausnehmen! “, vbInformation, „Störung“
Unterseeboot herausnehmen
Beenden wenn

Unterseeboot beenden
Weitere Lösungen  
 
programming4us programming4us