PDA

Vollständige Version anzeigen : Werte aus Tabelle in Excel


LuckyStricke
25.02.2008, 14:14
Hallo,

ich habe folgendes Problem ! In meiner Access Datenbank habe ich Werte die eine Excel Tabelle eingefügt werden müssen ! Die Excel Tabelle hat immer die gleiche Struktur also feste Zellen !

Bei einigen setzt er die Werte Korrekt bei einigen nicht ! ???????????!!!!

Bei einigen werden z.B. die Werte in P2 ( ziehe Anhang ) nicht gefüllt ?????

Ich vermute, dass es an der if Schleife liegt ! Roter Bereich !
Würde mich über jede Hilfe freuen !

Danke !



rs3.MoveFirst
If rs3.RecordCount <> 0 Then
Do While rs3.EOF <> True
If Forms![Frm_Masterplan]![Frm_WahlPart] = rs3![PID] Then
If rs3![period] > maxperiod Then
maxperiod = rs3![period]
End If
End If
rs3.MoveNext
Loop
End If
anz_Task = 0
rs3.MoveFirst
If rs3.RecordCount <> 0 Then
Do While rs3.EOF <> True

If Forms![Frm_Masterplan]![Frm_WahlPart] = rs3![PID] Then


' Select Case rs3![period]
' Case Is = 1
' zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 1))
' Case Is = 2
' zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 1))
' Case Is = 3
' zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 3))
' Case Is = 4
' zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 3))
' Case Is = 5
' zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 3))
' End Select


'anz_Task = anz_Task + 1
'zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 1))

[COLOR="Red"] If (rs3![period] >= 2) Then
'zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 1))
zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 3))

Else
zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 1))
'zielspalte = 10 + (21 * (maxperiod - rs3![period])) + (7 * (rs3![Zeitraum] - 3))
End If[/COLOR]




If (myperiod <> rs3![period]) Then
'anz_Task = 0
myperiod = rs3![period]
End If

If rs3![Zeitraum] = 1 Then
anz_Task = anz_Task + 1
End If


If anz_Task = 1 Then
With ExTab_TB
Select Case rs3![Zeitraum]
Case 1
zr = "0-6"
Case 2
zr = "7-12"
Case 3
zr = "13-18"
Case 4
zr = "19-24"
Case 5
zr = "25-30"
Case 6
zr = "31-36"
Case 7
zr = "37-42"
Case 8
zr = "43-48"
End Select

.Activate
.Cells(7, zielspalte) = "P " + CStr(myperiod) + " / " + zr
End With
End If
With ExTab_TB
'lineone = anz_Task * 12 + 9
lineone = anz_Task * 12 + 8
.Activate
'Cells(1,A)
If costmodel <> "FC" Then
IC_IA = 0.2 * (rs3![LC-IA] + rs3![TC-IA] + rs3![TEC-IA])
IC_DA = 0.2 * (rs3![LC-DA] + rs3![TC-DA] + rs3![TEC-DA])
IC_TA = 0.2 * (rs3![LC-TA] + rs3![TC-TA] + rs3![TEC-TA])
IC_MA = 0.2 * (rs3![LC-MA] + rs3![TC-MA] + rs3![TEC-MA])
Else
IC_IA = rs3![IC-IA]
IC_DA = rs3![IC-DA]
IC_TA = rs3![IC-TA]
IC_MA = rs3![IC-MA]
End If
SumIA = rs3![LC-IA] + rs3![TC-IA] + rs3![TEC-IA] + rs3![SC-IA] + IC_IA
SumDA = rs3![LC-DA] + rs3![TC-DA] + rs3![TEC-DA] + rs3![SC-DA] + IC_DA
SumTA = rs3![LC-TA] + rs3![TC-TA] + rs3![TEC-TA] + rs3![SC-TA] + IC_TA
SumMA = rs3![LC-MA] + rs3![TC-MA] + rs3![TEC-MA] + rs3![SC-MA] + IC_MA

'Überschriften
.Cells(lineone, zielspalte + 1) = "Innovation related Activities"
.Cells(lineone, zielspalte + 2) = "Demonstration Action"
.Cells(lineone, zielspalte + 3) = "Training Activities"
.Cells(lineone, zielspalte + 4) = "Management Activities"
.Cells(lineone + 1, zielspalte) = "Labor costs"
.Cells(lineone + 2, zielspalte) = "Travel costs"
.Cells(lineone + 3, zielspalte) = "Techn. Equipm."
.Cells(lineone + 4, zielspalte) = "Indirect costs"
.Cells(lineone + 5, zielspalte) = "Subcontracts"
.Cells(lineone + 6, zielspalte) = "Total costs"
.Cells(lineone + 7, zielspalte) = "Req COM"
.Cells(lineone + 9, zielspalte) = "Person month"
'Daten aus Teilbudget

.Cells(lineone, zielspalte) = "WP " + CStr(rs3![WP]) + ". T " + CStr(rs3![Task])
.Cells(lineone + 1, zielspalte + 1) = rs3![LC-IA]
.Cells(lineone + 2, zielspalte + 1) = rs3![TC-IA]
.Cells(lineone + 3, zielspalte + 1) = rs3![TEC-IA]
.Cells(lineone + 5, zielspalte + 1) = rs3![SC-IA]
.Cells(lineone + 4, zielspalte + 1) = IC_IA
.Cells(lineone + 6, zielspalte + 1) = SumIA
.Cells(lineone + 7, zielspalte + 1) = SumIA * IA_fakt
.Cells(lineone + 9, zielspalte + 1) = rs3![Persmonth-IA]

.Cells(lineone + 1, zielspalte + 2) = rs3![LC-DA]
.Cells(lineone + 2, zielspalte + 2) = rs3![TC-DA]
.Cells(lineone + 3, zielspalte + 2) = rs3![TEC-DA]
.Cells(lineone + 5, zielspalte + 2) = rs3![SC-DA]
.Cells(lineone + 4, zielspalte + 2) = IC_DA
.Cells(lineone + 6, zielspalte + 2) = SumDA
.Cells(lineone + 7, zielspalte + 2) = SumDA * DA_fakt

.Cells(lineone + 9, zielspalte + 2) = rs3![Persmonth-DA]

.Cells(lineone + 1, zielspalte + 3) = rs3![LC-TA]
.Cells(lineone + 2, zielspalte + 3) = rs3![TC-TA]
.Cells(lineone + 3, zielspalte + 3) = rs3![TEC-TA]
.Cells(lineone + 5, zielspalte + 3) = rs3![SC-TA]
.Cells(lineone + 4, zielspalte + 3) = IC_TA
.Cells(lineone + 6, zielspalte + 3) = SumTA
.Cells(lineone + 7, zielspalte + 3) = SumTA * TA_fakt
.Cells(lineone + 9, zielspalte + 3) = rs3![Persmonth-TA]

.Cells(lineone + 1, zielspalte + 4) = rs3![LC-MA]
.Cells(lineone + 2, zielspalte + 4) = rs3![TC-MA]
.Cells(lineone + 3, zielspalte + 4) = rs3![TEC-MA]
.Cells(lineone + 5, zielspalte + 4) = rs3![SC-MA]
.Cells(lineone + 4, zielspalte + 4) = IC_MA
.Cells(lineone + 6, zielspalte + 4) = SumMA
.Cells(lineone + 7, zielspalte + 4) = SumMA * MA_fakt
.Cells(lineone + 9, zielspalte + 4) = rs3![Persmonth-MA]


End With
End If
rs3.MoveNext
Loop
End If
maxperiod = 0

lalo
25.02.2008, 16:41
Hallo,
ohne die Daten blickt man da nicht durch.
Empfehle Dir dringend, das ganze mit dem Debugger durchzugehen.

LuckyStricke
29.02.2008, 10:06
Mit dem Debugger habe ich es schon versucht !
Wenn du das Lokale Fenster meinst, wo man die Werte sehen kann, dass hilf mir auch nicht viel weiter !!!!!

peterffw
29.02.2008, 10:15
Hi,

und was ist das Ergebnis wenn Du mit dem Debugger durchtraced?
Bei Deinen rot markierten Befehlen in der IF-Frage ist ja nichts besonderes.
Du kannst aber wenn Du dort den Fehler vermutest einen Haltepunkt setzen, und den Inhalt der Variablen "Zielspalte" prüfen ob das korrekt ist, oder ob hier der Fehler liegt.

Ansonsten sehe ich nur noch die Möglichkeit, dass Du eine Beispiel-MDB und das Excelsheet hochlädst und man damit testen kann, denn Dein beigefügter Code wird von so vielen Faktoren beeinflusst, dass man sich mit einer Analyse schwertut.

Servus
Peter

LuckyStricke
04.03.2008, 13:16
Hallo,

lade gleich eine Beispiel DB hoch !

Danke im vorraus !