# Variable in Textfeld oÄ ausgeben



## Terminator2 (15. Januar 2006)

Hallo,

Tut mir Leid, dass ich wegen etwas so einfachem hier poste, aber ich konnte mit den sonstigen Hilfen nichts richtig anfangen.
Deswegen ist meine Frage:

Wie kann ich die Variable nWeek in irgendeinem Feld als Text anzeigen. Am besten noch mit "KW" vor dem Wert. Geht das?

mfg
Terminator2


----------



## codeman (15. Januar 2006)

Hallo Terminator2,

nWeek ist doch kein Array oder? Wenn nicht ist es ganz einfach:

```
Text1.Text = "KW " & nWeek
```


----------



## Terminator2 (15. Januar 2006)

Tut mir Leid. Ich hab so gut wie keine Ahnung von Visual Basic. Kann bisher nur ein paar Funktionen. Ich setz einfach mal den Quelltext rein, in dem die Variable deklariert wird.


```
Dim nWeek As Integer
nWeek = Format$(vDate, "ww", vbMonday, vbFirstFourDays)
Label1.Caption = "KW " & nWeek
```

Die letzte Zeile funktioniert irgendwie nicht. Wo liegt der Fehler?

mfg
Termi


----------



## D@nger (15. Januar 2006)

Hallo,

bitte folgendes benutzen:

LG


----------



## Terminator2 (15. Januar 2006)

Hallo,

Danke erstmal. Habe das Programm mal getestet. Das scheint ja alles richtig zu funktionieren, aber wie kann ich jetzt die aktuelle Kalenderwoche anzeigen lassen? Ich muss nämlich diese immer ablesen können, bzw. in einem anderen Programm weiterverarbeiten können. Geht das auch?

mfg
Termi


----------



## codeman (15. Januar 2006)

Wie anzeigen?
Bei dem Programm von D@nger wird die KW ja eh angezeigt? Weiterverarbeiten kannst du das Ergebnis z.B. in dem du es in einer Textdatei speicherst, die kann dan ein anderes Programm öffnen.


----------



## Terminator2 (15. Januar 2006)

Hallo,

bei mir stand da 1/2004. Das war doch ein voreingestellter Wert. Aber ich muss ja die aktuelle Kalenderwoche weiterverarbeiten. Was muss ich dafür ändern?

mfg
Termi


----------



## D@nger (15. Januar 2006)

Hi,

erstmal das aktuelle Datum auslesen.
Und womit könnte man das machen?
Mit Datum=Date
LG


----------



## mage (16. Januar 2006)

Die Now() Funktion gibt dir das aktuelle Datum und die aktuelle Uhrzeit aus.


```
Dim Datum As Date
Date = Now()
```


----------



## D@nger (16. Januar 2006)

Hallo,
Datum=date
 reicht aber aus.
LG


----------



## Terminator2 (16. Januar 2006)

Hallo,

danke Leute. Jetzt habe ich die Anzeige genau so, wie sie sein soll:
KW xx  Tag.Monat.Jahr Stunde:Minute:Sekunde Uhr

Das ist ja schon einmal super.
Jetzt muss ich nur noch die KW in einer externen Datei abspeichern lassen, um sie mit einem anderen Programm weiterverarbeiten zu können. Wie mache ich das am besten? Eine txt Datei wäre ok.

Danke im vorraus!
Termi


----------



## D@nger (16. Januar 2006)

Hallo,
dazu verweise ich auf die Forensuche oder auf vbarchiv.de bzw. activevb.de
Der Code kann dir nicht einfach so vorgelegt werden, da man auch mal suchen muss.
mfg


----------



## Terminator2 (18. Januar 2006)

Hallo,

ok, damit bin ich ein wenig weiter gekommen. Aber ich finde den fehler nicht. Ich bekomme immer eine Meldung "Falscher Dateimodus". Wo liegt da der Fehler? Übrigens, die zu speichernde Variable heißt sKW.

hier der Quelltext (ist in Public Function geschrieben):

```
Kanal = FreeFile                                  
Open "C:\Variablen.txt" For Append As Kanal
Line Input #Kanal, sKW                            
Text1.Text = sKW                                
Close Kanal
```

Danke im vorraus!


----------



## Terminator2 (20. Januar 2006)

Hallo,

habe jetzt noch einmal den Quelltext überarbeitet. Die Ausgabe klappt soweit, nur dass halt meien Variable nicht ausgegeben wird. Immer nur Das gschriebene. Aber seht selbst:


```
Private Sub Timer1_Timer()
Dim Datum As Date
Date = Now()
Dim sKW As String
sKW = fConvKW(Date)
Label1.Caption = "KW " & Right$(sKW, 2) & "/" & Left$(sKW, 4) & " - " & Now
End Sub

Public Function fConvKW(ByVal ZuKonvertDat As Date) As String
   If Weekday(ZuKonvertDat) = vbMonday Then _
    ZuKonvertDat = ZuKonvertDat + 1

  fConvKW = DatePart("ww", ZuKonvertDat, vbMonday, vbFirstFourDays)

  If fConvKW < 10 Then
    fConvKW = Year(ZuKonvertDat + 6) & "0" & fConvKW
  Else
    fConvKW = Year(ZuKonvertDat - 6) & fConvKW
  End If

Dim KaWo As String
KaWo = "KW " & Right$(sKW, 2)

Dim Kanal As Integer
Kanal = FreeFile
Open "C:\Variablen.txt" For Output As #Kanal
Print #Kanal, KaWo
Close #Kanal

End Function
```

So, dass ist jetzt alles vom Herausholen der Kalenderwoche bis zum abspeichern.
Oder könnte es sein, dass sich die Variable zu oft aktualisiert und deshalb nicht in der Textdatei abgespeichert wird?

mfg
Termi


----------



## D@nger (20. Januar 2006)

Hallo,
hier der richtige Code:


> Private Sub Timer1_Timer()
> Dim Datum As Date
> Date = Now()
> Dim sKW As String
> ...


Ciao


----------



## D@nger (20. Januar 2006)

Hallo,
also du kannst nicht so einfach aus einer Prozedur auf die andere zugreifen.
Das muss schon innerhalb dieser sein.
Z.B. geht folgendes nicht:


> Private Sub Command1_click()
> Dim Zeichenfolge as String
> Zeichenfolge = "ein beliebiger Text"
> End sub
> ...



Das hast du nämlich in deinem Code gemacht.

Nun gehen wir einen Schritt weiter, und zwar muss der Code zum speichern der Variable in den Timer. Das reicht aber nicht aus, denn bei jedem Durchlauf des Timers (z.B. jede Sekunde) wird der Wert der Variablen auf 0 gesetzt (wegen Dim....).
Deshalb muss die Variable KaWo unter sKW, da die Variable KaWo auf die Variable sKW zugreift und das nicht gehen würde, wenn KaWo über sKw wäre, da diese zu dem Zeitpunkt noch leer ist.

Ich hoffe, ich habe dir geholfen.
Grüße


----------



## Terminator2 (20. Januar 2006)

Hallo,

Vielen Dank für eure Hilfe. Funktioniert jetzt perfekt.


mfg
Termi


----------

