Seite 1 von 1

Makro in Base

Verfasst: Sa, 17.03.2012 14:36
von xedp3x
Ich möchte das ein wert in eine Tabelle reingeschrieben wird.

Bei

Code: Alles auswählen

Form.GetByName("Rückliferung").date = Control.GetByName("RuckL").date
wird zwar "date" gesetzt aber in der Tabelle ändert sich nichts.

Code: Alles auswählen

Form.GetByName("Rückliferung").BoundField.updatedate(Control.GetByName("RuckL").Date)
liefert nur einen Fehler.

Weiß jemand was ich da machen kann?

Code: Alles auswählen

Sub Bearb (Event As Object) 
 Dim Form As object 
 Dim Control As Object 
 Form=Event.Source.Model.Parent 
 
 if IsEmpty(Form.GetByName("Rückliferung").Date) then
 	
	 Control=Form.Parent.Parent.GetByName("Formular1") 
	 Control.Filter="( Passe.BE = '"+Event.Source.Text +"' )"
	 Control.ApplyFilter=True 
	 Control.reload()
	 
	 Form.GetByName("Rückliferung").BoundField.updatedate(Control.GetByName("RuckL").Date)

 end if 
 
End Sub

Re: Makro in Base

Verfasst: Sa, 17.03.2012 15:15
von lorbass
Du hast die obligatorischen Standard-Infos vergessen!
  • Welches Betriebssystem?
  • Welche OOo- / LO-Version?
xedp3x hat geschrieben:… liefert nur einen Fehler.
Welchen?

Hast du schon mal probiert, ohne Umlaute zu arbeiten? Wenn nicht, versuch's mal mit Ruecklieferung statt Rückliferung.

Gruß
lorbass

Re: Makro in Base

Verfasst: Sa, 17.03.2012 16:25
von xedp3x
lorbass hat geschrieben:Du hast die obligatorischen Standard-Infos vergessen!
Ich glaub nicht das es daran liegt, da auch ein "BASIC-Fehler" auftritt.

Windows 7 mit LO 3.4
MySQL über den MySQL-Konector
lorbass hat geschrieben: Hast du schon mal probiert, ohne Umlaute zu arbeiten? Wenn nicht, versuch's mal mit Rueckliferung statt Rückliferung.
Die Tabellen werden richtig abgerufen und ich kann auch ohne Probleme schreiben.

Ich weiß nur nicht wie ich aus dem Script heraus Daten ändern kann.


Die Fehlermeldung ist:

Code: Alles auswählen

BASIC-Laufzeitfehler
Objektvariable nicht belegt


Wenn ich das Datum als String übergeben funktioniert das schreiben in die DB, wobei aber immer 1.1.1800 geschrieben wird. oO

Code: Alles auswählen

	 dim Back as String
	 Back = D & "." & M  & "." & Y
	 
	 Form.GetByName("Rückliferung").BoundField.updatestring(Back)

Re: Makro in Base

Verfasst: Sa, 17.03.2012 16:51
von xedp3x
Ich hab es gefunden...

Die wollen das Datum in Amerikanischer Schreibweise haben.

Code: Alles auswählen

Sub Bearb (Event As Object) 
 Dim Form As object 
 Dim Control As Object 
 Form=Event.Source.Parent 
 
 if IsEmpty(Form.GetByName("Rückliferung").Date) then
 	
	Control=Form.Parent.Parent.GetByName("Formular1") 
	Control.Filter="( Passe.BE = '"+Event.Source.Text +"' )"
	Control.ApplyFilter=True 
	Control.reload()
	 
	if (Control.GetByName("RuckL").Date <> 0) then
	 
		Dim Y,M,D AS Long
	 	Dim I AS Long
		I = Control.GetByName("RuckL").Date
		 
		D = I Mod 100
		I = I \ 100
		
		M = I Mod 100
		I = I \ 100
		 
		Y = I
		 
		dim Back as String
		Back = Y & "-" & M & "-" & D
		 
		Form.GetByName("Rückliferung").BoundField.updatestring(Back)

	 end if
 end if 
End Sub

Re: Makro in Base

Verfasst: Sa, 17.03.2012 18:49
von lorbass
xedp3x hat geschrieben:Die wollen das Datum in Amerikanischer Schreibweise haben.
Nö. Was du zusammenstellst, ist eine in ISO 8601 standardisierte Schreibweise des Datums. Zum Nachlesen: Gruß
lorbass

Re: Makro in Base

Verfasst: So, 18.03.2012 11:52
von xedp3x
In der Form kann man auch 12.3 eingeben und er weiß sofort das ich damit 12.3.12 meine und schreibt es dann mit 2012-03-12 in die DB.

im Script will er zumindest 2012-3-12 haben.