Objekt Variable oder with Blockvariable sind nicht definiert
#1
Ich bekomme bei Ausführung eines Makros einen Fehler in Zeile 483 "Objekt Variable oder With Blockvariable sind nicht definiert"
In Zeile 483 steht "Set task = db.Extraction"

Der ganze Teil von diesem Makro:

'#####   b. Aufbereitung der Datei "CSHMXP0_Produktmix täglich":
' Daten: Direkte Extraktion
Function DirectExtraction_Außenumsätze
. Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Produktmix täglich_.IMD")
 'Set db = Client.OpenDatabase (sPfad & asJahr(iCounter) &"\fbdebw.IMD")
 Set task = db.Extraction
 Set table = db.TableDef
 table.ResetView
 task.AddFieldToInc "PMXMIC_ARTIKELNUMMER"
 'task.AddFieldToInc "PMXDSC"
 task.AddFieldToInc "DATUM"
 task.AddFieldToInc "PMXPOB_PREIS_AUSSEN_BRUTTO"
 task.AddFieldToInc "PMXPON_PREIS_AUSSEN_NETTO"
 task.AddFieldToInc "PMXUSO_EINHEITEN__VERK__AUSSEN"
 task.AddFieldToInc "PMXPOB_PREIS_AUSSEN_BRUTTO"
 task.AddFieldToInc "AUSSEN_NETTO"
 task.AddFieldToInc "AUSSEN_ERM"
 task.AddFieldToInc "AUSSEN_VOLL"
 dbName = sPfad & asJahr(iCounter) &"\_Umsätze_außen aus Produktmix.IMD"
 task.AddExtraction dbName, "", " PMXUSO_EINHEITEN__VERK__AUSSEN <> 0"
 task.PerformTask 1, db.Count
 Set table = Nothing
 Set task = Nothing
 db.Close
 Set db = Nothing
' Client.OpenDatabase (dbName)
End Function



Kann mir jemand sagen, was ich an dem Code ändern muss?
Top
#2
Hallo,

das bezweifle ich, dass jemand Dir sagen kann, was Du ändern musst. Denn, wie sind Client, db und task definiert bzw. deklariert?
Auf welches Objekt beziehen sich diese Variablen? Jedenfalls sind das keine Excel-Standardobjekte. Es sieht so aus, dass Extraction
kein Unterobjekt von db ist.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Top
#3
Hallo,

auf jeden Fall würde ich den Punkt bei
. Set db = ...
entfernen. Mehr kann man aus dem Codefetzen nicht ersehen.

Gruß Uwe
Top
#4
Es handelt sich hier um ein IDEA-Script... Ist das bei diesem Makro alles anders?
Trotzdem hier das ganze Makro:


Code:
' IDEAScript:
' SOTEC ArchivXT - Daten einer McDonalds Filiale (Store)
'
' Programmbeschreibung:
' - IDEA-Makro zur Aufbereitung von McDonalds-Kassendaten, die mit Hilfe der Firma SOTEC archiviert wurden.
'  hier:    a. Aufbereitung der Datei "CSHMIMP2" = Artikelstamm
'  ******      b. Aufbereitung der Datei "CSHPMXP0" = Produktmix täglich
'                              c. Aufbereitung der Datei " CSHICAP0" =  Tageskassenbericht

'
' Voraussetzung : die index.xml wurde mit Hilfe von Notepad++ hinsichtlich der Feld- und Tabellennamen angepasst,
'''''''''''''''''''''''''''''''''''''''''''''''''              d.h. die technischen Namen wurden um den sprechenden Namen laut "Beschreibung" ergänzt (nicht ersetzt!!!)
' -> siehe Ktz-Wiki: NameDescriptionTauschen
'                                                                                ******************************
'Folgende Tabellen werden benötigt:
'
' a. CSHMIMP2_Artikelstamm
' b. CSHPMXP0_Produktmix täglich bzw. "_Produktmix taeglich" laut Makro "01_MCD_Aufbereitung Bedienerabrechnung"
' c. CSHICAP0_Tageskassenbericht
'
'
'ACHTUNG:  vor Makrostart den Prüfungszeitraum eintragen unter: ***For iCounter = xx To xx****
'                                                                                                                            ------------------------------
''
' Version:
' 1.0 erstellt:
' 2017-01-30      Sabine Palm, GKBP Bonn (5272)
'
'--------------------------------------------------------------------------------------------------------
'<Ende_Kopf>
Begin Dialog Dialogbox1 0,0,360,155,"Festlegen des aktuellen Arbeitsverzeichnisses", .NeueDialogbox
  TextBox 15,80,324,12, .TextBox1
  OKButton 64,122,56,13, "OK", .OKButton1
  CancelButton 243,120,48,13, "Abbrechen", .CancelButton1
  Text 16,37,320,8, "Falls am Ende des Pfades ein solcher Jahresordner stehen solte, diesen bitte entfernen!", .Text02
  Text 16,12,320,16, "Hier muss der 'Hauptordner' des Falles angezeigt werden - keinesfalls darf der Pfad mit einem Jahresordner enden!", .Text01
  Text 16,52,320,8, "Der Pfad muss mit einem Backslash    -  \  -  enden.", .Text03
End Dialog
Option Explicit
Dim a As Dialogbox1
Dim b As Integer
Dim eqn, eqn1, dbName, sPfad, sPfad1 As String
Dim db, task, fso  As Object
Dim field, table As Object
Dim oDialog As Object
Dim dbName5 As String
Dim iCounter As Integer
Dim asJahr() As String
Dim bEbVorhanden As Boolean
        Dim iEBJahr As Integer


Sub Main

ReDim asJahr(7)
asJahr(00)="2010"
asJahr(01)="2011"
asJahr(02)="2012"
asJahr(03)="2013"
asJahr(04)="2014"
asJahr(05)="2015"
asJahr(06)="2016"

'###############################
sPfad1=client.Workingdirectory

a.Textbox1 = sPfad1 'Textfeld vordefinieren
b = Dialog(a) 'Dialog aufrufen
sPfad = a.Textbox1
If b=0 Then '=Abbruch 'Dialog auswerten
MsgBox(" Abbruch! - Erneut starten und ggf. den Jahresordner in der Leiste entfernen! ")
GoTo abbrechen
End If
If b=-1 Then '=OK
End If
'###############################

For iCounter = 04 To 04



'GoTo weiter
'#####  a. Aufbereitung der Artikelstammdaten:
Call DirectExtraction() 'CSHMIMP2.IMD
Call DirectExtraction_Preisänderungen() 'alle Artikel, die einen "neuen" Preis im PZR bzw Jahr haben
'Call Summarization_Preisänderungen() 'Preisänderungen.IMD

Call DirectExtraction_Steuerschlüssel_innen_7() 'Übersicht Artikelpreise.IMD
Call Summarization_Steuerschlüssel_innen_7() 'Steuerschlüssel innen 7%.IMD
'weiter
Call DirectExtraction_Steuerschlüssel_außen_7() 'Übersicht Artikelpreise.IMD
Call Summarization_Steuerschlüssel_außen_7() 'Steuerschlüssel außen 7%.IMD
Call DirectExtraction_Steuerschlüssel_außen_19() 'Übersicht Artikelpreise.IMD
Call Summarization_Steuerschlüssel_außen_19() 'Steuerschlüssel außen 7%.IMD

Call DirectExtraction_Mindestpreise() 'Übersicht Artikelpreise.IMD
Call FieldManipulationAppendFields() 'Mindestpreise.IMD
'Call DirectExtraction() 'Mindestpreise.IMD

Call DirectExtraction_Änderung_MPR() 'Mindestpreise.IMD
Call Summarization_MPR() 'Mindestpreise.IMD
Call Summarization_MPR1() 'Mindestpreise.IMD
Client.CloseDatabase sPfad & asJahr(iCounter) & "\Mindestpreise.IMD"
Client.CloseDatabase sPfad & asJahr(iCounter) & "\Su_MPR_vorÄnderg.IMD"
Client.CloseDatabase sPfad & asJahr(iCounter) & "\Su_MPR_nachÄnderg.IMD"
'weiter
'#####  b. Aufbereitung der Datei "CSHMXP0_Produktmix täglich":
Call DirectExtraction_Außenumsätze() 'Umsätze aus Produktmix.IMD
Call DirectExtraction_AußenumsätzeVoll() 'Umsätze_außen aus Produktmix.IMD
Call DirectExtraction_AußenumsätzeErm() 'Umsätze_außen aus Produktmix.IMD
Call Summarization_AußenumsätzeErm() 'Außenumsätze 7%.IMD
Call Summarization_AußenumsätzeVoll() 'Außenumsätze 19%.IMD
Call DirectExtraction_Preis_br_unter_1() 'Außenumsätze 19%.IMD
Call Summarization_AußenumsätzeVoll_unter1() 'Außenumsätze 19% mit Preis_br unter 1€.IMD

Call JoinDatabase_SuArt_mitBez() '_Summe ArtikelNr.IMD

'#####  c. Aufbereitung der Datei "'CSHICAP0_Tageskassenbericht":
Call DirectExtraction_Tageskassenbericht() 'CSHICAP0_Tageskassenbericht.IMD
Call FieldManipulationAppendFields_Tageskassenbericht() '_Tageskassenbericht.IMD
Call Summarization_Tageskassenbericht() '_Tageskassenbericht.IMD




Next

Client.RefreshFileExplorer

MsgBox"  fertig!"

'###############################

abbrechen

'###############################

End Sub


' Daten: Direkte Extraktion
Function DirectExtraction
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\CSHMIMP2_Artikelstamm.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.AddFieldToInc "MIMMIC_ARTIKELNUMMER"
task.AddFieldToInc "MIMNAM_ARTIKELBEZEICHNUNG"
task.AddFieldToInc "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMTXC_STEUERCODE"
task.AddFieldToInc "MIMTCI_STEUERSCHLÜSSEL_INNEN"
task.AddFieldToInc "MIMPRI_PREIS_INNEN"
task.AddFieldToInc "MIMTCA_STEUERSCHLÜSSEL_AUSSEN"
task.AddFieldToInc "MIMPRO_PREIS_AUSSEN"
task.AddFieldToInc "MIMNPI_NEUER_PREIS_INNEN"
task.AddFieldToInc "MIMNPO_NEUER_PREIS_AUSSEN"
task.AddFieldToInc "MIMPND_GÜLTIGKEITSDATUM_NEUER_PREIS"
'task.AddFieldToInc "STEUER_KOMPONENTE_1_INNEN"
task.AddFieldToInc "MIMPI1_PREIS_KOMPONENTE_1_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_1_AUSSEN"
task.AddFieldToInc "MIMPO1_PREIS_KOMPONENTE_1_AUSSEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_2_INNEN"
task.AddFieldToInc "MIMPI2_PREIS_KOMPONENTE_2_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_2_AUSSEN"
task.AddFieldToInc "MIMPO2_PREIS_KOMPONENTE_2_AUSSEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_3_INNEN"
task.AddFieldToInc "MIMPI3_PREIS_KOMPONENTE_3_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_3_AUSSEN"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD"
task.AddExtraction dbName, "", ""
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
'Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Preisänderungen
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Preisänderungen.IMD"
task.AddExtraction dbName, "", "MIMNPI_NEUER_PREIS_INNEN <> 0,00 "
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Steuerschlüssel_innen_7
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Steuerschlüssel innen 7%.IMD"
'task.AddExtraction dbName, "", "STEUER_KOMPONENTE_1_INNEN  ==  ""02""  .OR. STEUER_KOMPONENTE_2_INNEN ==  ""02"" .OR. STEUER_KOMPONENTE_3_INNEN ==  ""02"""
task.AddExtraction dbName, "", "MIMTCI_STEUERSCHLÜSSEL_INNEN  ==  ""02"""
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
'Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_Steuerschlüssel_innen_7
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Steuerschlüssel innen 7%.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPRI_PREIS_INNEN"
task.AddFieldToInc "MIMNPI_NEUER_PREIS_INNEN"
task.AddFieldToInc "MIMPI1_PREIS_KOMPONENTE_1_INNEN"
task.AddFieldToInc "MIMPI2_PREIS_KOMPONENTE_2_INNEN"
task.AddFieldToInc "MIMPI3_PREIS_KOMPONENTE_3_INNEN"
dbName = sPfad & asJahr(iCounter) &"\_Su St_Schl_innen 7%.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = TRUE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Steuerschlüssel_außen_7
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Steuerschlüssel außen 7%.IMD"
task.AddExtraction dbName, "", "MIMTCA_STEUERSCHLÜSSEL_AUSSEN  ==  ""02"" "
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_Steuerschlüssel_außen_7
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Steuerschlüssel außen 7%.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPO1_PREIS_KOMPONENTE_1_AUSSEN"
task.AddFieldToInc "MIMPO2_PREIS_KOMPONENTE_2_AUSSEN"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Su St_Schl_außen 7%.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = TRUE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

'####
' Daten: Direkte Extraktion
Function DirectExtraction_Steuerschlüssel_außen_19
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Steuerschlüssel außen 19%.IMD"
task.AddExtraction dbName, "", "MIMTCA_STEUERSCHLÜSSEL_AUSSEN  ==  ""01""  "
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_Steuerschlüssel_außen_19
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Steuerschlüssel außen 19%.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPO1_PREIS_KOMPONENTE_1_AUSSEN"
task.AddFieldToInc "MIMPO2_PREIS_KOMPONENTE_2_AUSSEN"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Su St_Schl_außen 19%.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = TRUE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Mindestpreise
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Übersicht Artikelpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
task.AddKey "MIMMIC_ARTIKELNUMMER", "A"
dbName = sPfad & asJahr(iCounter) &"\_Mindestpreise.IMD"
'task.AddExtraction dbName, "", "PREIS_KOMPONENTE_3_AUSSEN <> 0,00 .AND. STEUER_KOMPONENTE_3_AUSSEN = ""01"""
task.AddExtraction dbName, "", "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN <> 0,00 "
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Felder bearbeiten - Felder anhängen
Function FieldManipulationAppendFields
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Mindestpreise.IMD")
Set task = db.TableManagement
Set table = db.TableDef
Set field = table.NewField
eqn = "@GetNextValue( "" MIMPO3_PREIS_KOMPONENTE_3_AUSSEN "" )"
field.Name = "GLEICHE_MINDESTPR"
field.Description = ""
field.Type = WI_VIRT_NUM
field.Equation = eqn
field.Decimals = 2
task.AppendField field
Set field = table.NewField
eqn = "@GetNextValue( "" MIMMIC_ARTIKELNUMMER "" )"
field.Name = "GLEICHE_ARTIKELNR"
field.Description = ""
field.Type = WI_VIRT_NUM
field.Equation = eqn
field.Decimals = 0
task.AppendField field
Set field = table.NewField
eqn = "@If((MIMPO3_PREIS_KOMPONENTE_3_AUSSEN <> GLEICHE_MINDESTPR) .AND. (MIMMIC_ARTIKELNUMMER == GLEICHE_ARTIKELNR); ""XX""; """"  )"
field.Name = "ÄNDERUNG_MINDESTPR"
field.Description = ""
field.Type = WI_VIRT_CHAR
field.Equation = eqn
field.Length = 2
task.AppendField field
task.PerformTask
Set task = Nothing
Set db = Nothing
Set table = Nothing
Set field = Nothing
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Änderung_MPR
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Mindestpreise.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.AddFieldToInc "MIMMIC_ARTIKELNUMMER"
task.AddFieldToInc "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMTXC_STEUERCODE"
task.AddFieldToInc "MIMTCI_STEUERSCHLÜSSEL_INNEN"
task.AddFieldToInc "MIMPRI_PREIS_INNEN"
task.AddFieldToInc "MIMTCA_STEUERSCHLÜSSEL_AUSSEN"
task.AddFieldToInc "MIMPRO_PREIS_AUSSEN"
task.AddFieldToInc "MIMNPI_NEUER_PREIS_INNEN"
task.AddFieldToInc "MIMNPO_NEUER_PREIS_AUSSEN"
task.AddFieldToInc "MIMPND_GÜLTIGKEITSDATUM_NEUER_PREIS"
'task.AddFieldToInc "STEUER_KOMPONENTE_1_INNEN"
task.AddFieldToInc "MIMPI1_PREIS_KOMPONENTE_1_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_1_AUSSEN"
task.AddFieldToInc "MIMPO1_PREIS_KOMPONENTE_1_AUSSEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_2_INNEN"
task.AddFieldToInc "MIMPI2_PREIS_KOMPONENTE_2_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_2_AUSSEN"
task.AddFieldToInc "MIMPO2_PREIS_KOMPONENTE_2_AUSSEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_3_INNEN"
task.AddFieldToInc "MIMPI3_PREIS_KOMPONENTE_3_INNEN"
'task.AddFieldToInc "STEUER_KOMPONENTE_3_AUSSEN"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
task.AddFieldToInc "GLEICHE_MINDESTPR"
'task.AddFieldToInc "GLEICHE_ARTIKELNR"
'task.AddFieldToInc "ÄNDERUNG_MINDESTPR"
dbName = sPfad & asJahr(iCounter) &"\_Änderung Mindestpreise.IMD"
task.AddExtraction dbName, "", "ÄNDERUNG_MINDESTPR == ""XX"""
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_MPR
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Mindestpreise.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Su_MPR_vorÄnderg.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = TRUE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_MPR1
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Mindestpreise.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Su_MPR_nachÄnderg.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = FALSE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_Preisänderungen
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Preisänderungen.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "MIMMIC_ARTIKELNUMMER"
task.AddFieldToSummarize "MIMDSC_LANGBEZEICHNUNG"
task.AddFieldToInc "MIMPRI_PREIS_INNEN"
task.AddFieldToInc "MIMPRO_PREIS_AUSSEN"
task.AddFieldToInc "MIMNPI_NEUER_PREIS_INNEN"
task.AddFieldToInc "MIMNPO_NEUER_PREIS_AUSSEN"
task.AddFieldToInc "MIMPND_GÜLTIGKEITSDATUM_NEUER_PREIS"
task.AddFieldToInc "MIMPI3_PREIS_KOMPONENTE_3_INNEN"
task.AddFieldToInc "MIMPO3_PREIS_KOMPONENTE_3_AUSSEN"
dbName = sPfad & asJahr(iCounter) &"\_Su Preisänderungen.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.UseFieldFromFirstOccurrence = TRUE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function


'#####  b. Aufbereitung der Datei "CSHMXP0_Produktmix täglich":

' Daten: Direkte Extraktion
Function DirectExtraction_Außenumsätze
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Produktmix taeglich.IMD")
'Set db = Client.OpenDatabase (sPfad & asJahr(iCounter) &"\fbdebw.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.AddFieldToInc "PMXMIC_ARTIKELNUMMER"
'task.AddFieldToInc "PMXDSC"
task.AddFieldToInc "DATUM"
task.AddFieldToInc "PMXPOB_PREIS_AUSSEN_BRUTTO"
task.AddFieldToInc "PMXPON_PREIS_AUSSEN_NETTO"
task.AddFieldToInc "PMXUSO_EINHEITEN__VERK__AUSSEN"
task.AddFieldToInc "AUSSEN_BRUTTO"
task.AddFieldToInc "AUSSEN_NETTO"
task.AddFieldToInc "AUSSEN_ERM"
task.AddFieldToInc "AUSSEN_VOLL"
dbName = sPfad & asJahr(iCounter) &"\_Umsätze_außen aus Produktmix.IMD"
task.AddExtraction dbName, "", " PMXUSO_EINHEITEN__VERK__AUSSEN <> 0"
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_AußenumsätzeVoll
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Umsätze_außen aus Produktmix.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Außenumsätze 19%.IMD"
task.AddExtraction dbName, "", " AUSSEN_VOLL  <> 0"
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_AußenumsätzeErm
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Umsätze_außen aus Produktmix.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Außenumsätze 7%.IMD"
task.AddExtraction dbName, "", " AUSSEN_ERM  <> 0"
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_AußenumsätzeErm
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Außenumsätze 7%.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "PMXMIC_ARTIKELNUMMER"
'task.AddFieldToSummarize "PMXDSC"
dbName = sPfad & asJahr(iCounter) &"\_Summe Artikel Außenums_7%.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Analyse: Felder aufsummieren
Function Summarization_AußenumsätzeVoll
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Außenumsätze 19%.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "PMXMIC_ARTIKELNUMMER"
'task.AddFieldToSummarize "PMXDSC"
dbName = sPfad & asJahr(iCounter) &"\_Summe Artikel Außenums_19%.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Preis_br_unter_1
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Außenumsätze 19%.IMD")
Set task = db.Extraction
Set table = db.TableDef
table.ResetView
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Außenumsätze 19% mit Preis_br unter 1€.IMD"
task.AddExtraction dbName, "", " PMXPOB_PREIS_AUSSEN_BRUTTO  < 1,00"
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

Function Summarization_AußenumsätzeVoll_unter1
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Außenumsätze 19% mit Preis_br unter 1€.IMD")
Set task = db.Summarization
Set table = db.TableDef
table.ResetView
task.AddFieldToSummarize "PMXMIC_ARTIKELNUMMER"
'task.AddFieldToSummarize "PMXDSC"
dbName = sPfad & asJahr(iCounter) &"\_Summe ArtikelNr.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Datei: Dateien verbinden
Function JoinDatabase_SuArt_mitBez
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Summe ArtikelNr.IMD")
Set task = db.JoinDatabase
Set table = db.TableDef
table.ResetView
task.FileToJoin sPfad & asJahr(iCounter) &"\_Summe Artikelstamm.IMD"
task.IncludeAllPFields
task.AddSFieldToInc "MIMDSC_LANGBEZEICHNUNG"
task.AddMatchKey "PMXMIC_ARTIKELNUMMER", "MIMMIC_ARTIKELNUMMER", "A"
dbName = sPfad & asJahr(iCounter) &"\_Summe ArtikelNr mit Bez.IMD"
task.PerformTask dbName, "", WI_JOIN_ALL_IN_PRIM
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
' Client.OpenDatabase (dbName)
End Function

' Daten: Direkte Extraktion
Function DirectExtraction_Tageskassenbericht
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\CSHICAP0_Tageskassenbericht.IMD")
Set task = db.Extraction
Set table = db.TableDef
task.IncludeAllFields
dbName = sPfad & asJahr(iCounter) &"\_Tageskassenbericht.IMD"
task.AddExtraction dbName, "", ""
task.PerformTask 1, db.Count
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
'Client.OpenDatabase (dbName)
End Function

' Daten: Felder bearbeiten - Felder anhängen
Function FieldManipulationAppendFields_Tageskassenbericht
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Tageskassenbericht.IMD")
Set task = db.TableManagement
Set table = db.TableDef
Set field = table.NewField
eqn = " @Ctod(@left( ICADAY_GESCHÄFTSTAG ;8);""yyyymmdd"")"
field.Name = "GESCHAEFTSTAG"
field.Description = ""
field.Type = WI_VIRT_DATE
field.Equation = eqn
field.Length = 8
task.AppendField field
Set field = table.NewField
eqn = " ICACFR_SCHLUSSBESTAND - ICAOFR_ANFANGSBESTAND -  ICAOVA_ÜBERTIPPUNG_WERT "
field.Name = "GESAMT_BRUTTO"
field.Description = ""
field.Type = WI_VIRT_NUM
field.Equation = eqn
field.Decimals = 2
task.AppendField field
task.PerformTask
Set task = Nothing
Set db = Nothing
Set table = Nothing
Set field = Nothing
End Function

' Analyse: Felder aufsummieren
Function Summarization_Tageskassenbericht
Set db = Client.OpenDatabase(sPfad & asJahr(iCounter) &"\_Tageskassenbericht.IMD")
Set task = db.Summarization
Set table = db.TableDef
task.AddFieldToSummarize "GESCHAEFTSTAG"
task.AddFieldToTotal "GESAMT_BRUTTO"
dbName = sPfad & asJahr(iCounter) &"\#_Summe GesamtBrutto je Geschäftstag.IMD"
task.OutputDBName = dbName
task.CreatePercentField = FALSE
task.StatisticsToInclude = SM_SUM
task.PerformTask
Set table = Nothing
Set task = Nothing
db.Close
Set db = Nothing
'Client.OpenDatabase (dbName)
End Function
Top
#5
Hallo,

das hat doch nichts mit Excel bzw. VBA, sondern mit VB zu tun.
Da solltest Du lieber hier fragen: http://ideascripting.com/forum

Gruß Uwe
Top
#6
Ok. Danke!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste