Makro in Base

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

xedp3x
Beiträge: 4
Registriert: Sa, 17.03.2012 14:34

Makro in Base

Beitrag 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
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Makro in Base

Beitrag 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
xedp3x
Beiträge: 4
Registriert: Sa, 17.03.2012 14:34

Re: Makro in Base

Beitrag 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)
xedp3x
Beiträge: 4
Registriert: Sa, 17.03.2012 14:34

Re: Makro in Base

Beitrag 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
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Makro in Base

Beitrag 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
xedp3x
Beiträge: 4
Registriert: Sa, 17.03.2012 14:34

Re: Makro in Base

Beitrag 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.
Antworten