Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Werte in ComboBox schreiben?


6 replies to this topic

Perry

Perry
  • Members
  • 7 posts

Posted 02 January 2003 - 17:30

Hallo,

und gleich noch eine Frage... Ich bekomme keine Werte in eine Combobox geschrieben? Bei folgendem Script kommt die Fehlermeldung, dass die Typen unverträglich sind:

Dim oDatabase
Dim oView
Dim oRecord
Dim sSQL
Dim oInstaller

MsgBox "01"

Set oDatabase = Session.Database

Set oView = oDatabase.OpenView("SELECT * FROM ComboBox WHERE Property='ANZEIGE'")

Set oInstaller = Session.Installer

Set oRecord = oInstaller.CreateRecord(4)

If Not oRecord Is Nothing Then
  'Set the property of the control to which the
oRecord.StringData(1) = "ANZEIGE"
   oRecord.IntegerData(2) = 1
   oRecord.StringData(3) = "qwewqe"
   oRecord.StringData(4) = "dfgdfg"
End If
 
On Error Resume Next

'Read/Write on to the view
oView.Modify 7,oRecord

MsgBox "03"

On Error Resume Next
Set oView = oDatabase.OpenView(sSQL)
If Err.Number <> 0 Then
MsgBox "Error " & Err.Number & " : " & Err.Description
On Error Goto 0
MsgBox "Error"
End If

MsgBox "04"

oView.Close
Set oView = Nothing
Set oDatabase = Nothing
Set oInstaller = Nothing
Set oRecord = Nothing

Und bei diesem läuft das Script aber es werden keine Daten angezeigt (Height ist auf 100)

Dim oDatabase
Dim oView
Dim sSQL

Set oDatabase = Session.Database
sSQL = "SELECT * FROM ComboBox WHERE Property = 'ANZEIGE'"

MsgBox "01"

On Error Resume Next
Set oView = oDatabase.OpenView(sSQL)

If (Err.Number <> 0) Then
MsgBox "Error " & Err.Number & " : " & Err.Description
End If

MsgBox "02"

'oView.Execute
'Set oRecord = oView.Fetch
'MsgBox oRecord.StringData(4)

sSQL = "INSERT INTO `ComboBox` (`Property`, `Order`, `Value`, `Text`) VALUES ('ANZEIGE', 1123, '5', 'TestText';) TEMPORARY"

MsgBox "03"

On Error Resume Next
Set oView = oDatabase.OpenView(sSQL)
If Err.Number <> 0 Then
MsgBox "Error " & Err.Number & " : " & Err.Description
On Error Goto 0
MsgBox "Error"
End If

MsgBox "04"

oView.Close
Set oView = Nothing
Set oDatabase = Nothing


Danke vorab!



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 02 January 2003 - 19:15

Fehlt da (im zweiten Beispiel) nicht ein View.Execute?

Perry

Perry
  • Members
  • 7 posts

Posted 02 January 2003 - 21:33

ja fehlte (habe es nachträglich noch eingefügt)...und jetzt bekomme ich die Fehlermeldung -2147467259 Execute Params? Das zweite Script läuft fehlerfrei allerdings hält die ComboBox (oder auch ein Listfeld) sehr wenig davon (bleibt leer)... muss ich das noch irgendwie Refreshen oder gibt es eine Standardeinstellung bei der Combobox die umgestellt werden muss

schon mal vielen Dank!



Perry

Perry
  • Members
  • 7 posts

Posted 02 January 2003 - 22:55

So jetzt funktioniert das zweite Script (Fehler lag darin, dass bereits ein Testwert als Items vorhanden war) allerdings zeigt die ComboBox noch immer Arbeitsverweigerung (keine Werte an???

Perry

Perry
  • Members
  • 7 posts

Posted 03 January 2003 - 10:09

Also es ist definitiv ein Refresh Problem! Die Werte werden geschrieben und wenn ich in eine neue Maske wechsele und wieder zurück click dann sind die Werte auch sichtbar... Gibt es eine Refresh-Möglichkeit aus VBScript zu Installshield?

Perry

Perry
  • Members
  • 7 posts

Posted 03 January 2003 - 11:38

NEIN - es geht wohl nicht??? Ich kann auch keine propertys von aktuellen Elementen (z.B. Button in der Dialogbox) ändern...?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 January 2003 - 15:30

Die Combobox wird ausgefüllt (d.h. die ComboBox Tabelle gelesen) wenn der Dialog angezeigt wird. Danach ist ein Refresh nicht mehr möglich (jedenfalls kenne ich keine Methode). Es gibt einen Trick als Workaround. Beispiel: Beim Klick auf einen Button soll ein Eintrag hinzugefügt werden. Lege dazu eine Kopie des Dialogs an. Der Button ruft das Skript auf, dass den Eintrg zur ComboBox Tabelle hinzufügt. Dann wechselt er zur Dialog-Kopie. (Man kann nicht den gleichen Dialog aus sich selbst aufrufen, man muss eine Kopie verwenden)