Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32

    VB 6 Object doesn't support this property or method - Error 438

    Ciao a tutti!
    Sto sviluppando un programma in visual basic in cui utilizzo delle combobox, in diversi form, per la scelta dell'unità di misura.
    Nel modulo effettuo il controllo sulle combo (richiamato dai vari form):
    in base all'unità di misura selezionata, converto il valore inserito nella textbox e lo riscrivo nella stessa textbox.

    Mi da' l'errore di cui sopra nei passaggi tipo questo:
    x.nome.Text = Str((Val(x.nome.Text)) / 100) in questa funzione:

    Public Sub converti_lung(ByVal x As Form)
    Dim nome As String
    For k = 1 To 4
    Select Case k
    Case 1: 'lunghezza
    nome = "txtlung"
    Case 2: 'largehzza
    nome = "txtlarg"
    Case 3: 'altezza
    nome = "txtaltezza"
    Case 4: 'spessore
    nome = "txtspessore"
    End Select
    Select Case x.cbolung(k).ItemData(x.cbolung(k).ListIndex)
    Case 2: 'dm
    x.nome.Text = Str((Val(x.nome.Text)) / 10)
    Case 3: 'cm
    x.nome.Text = Str((Val(x.nome.Text)) / 100)
    Case 4: 'mm
    x.nome.Text = Str(Val((x.nome.Text)) / 1000)
    Case 5: 'um
    x.nome.Text = Str((Val(x.nome.Text)) / 1000000)
    Case 6: 'nm
    x.nome.Text = Str((Val(x.nome.Text)) / 1000000000)
    Case 7: 'dam
    x.nome.Text = Str((Val(x.nome.Text)) * 10)
    Case 8: 'hm
    x.nome.Text = Str((Val(x.nome.Text)) * 100)
    Case 9: 'km
    x.nome.Text = Str((Val(x.nome.Text)) * 1000)
    End Select
    End If
    Next k
    End Sub

    mi sembra di capire che non accetti il nome della textbox immesso in una variabile; come mai?
    Come risolvo?
    in ascolto

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: VB 6 Object doesn't support this property or method - Error 438

    Originariamente inviato da fenice7
    mi sembra di capire che non accetti il nome della textbox immesso in una variabile; come mai?
    Come mai? Perché l'hai mai visto scritto in un libro di VB6 che si possa fare?

    Una stringa è una stringa e un textbox è un oggetto ...

    Invece di usare come argomento un Form, usa un Textbox e passa quello su cui vuoi agire ...

    E' anche possibile utilizzare un array di textbox con un nome certo e passi solamente l'indice numerico (vedi documentazione in tuo possesso).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32
    Ok grazie, ho risolto usando una variabile controls con cui scorro tutti i controlli del form e un'altra textbox in cui memorizzo quello che mi serve.

    Ora che ho il dato convertito e riscritto nella textbox in modo che l'utente possa vederlo, devo memorizzarlo nella variabile che userò per il calcolo, ma ho un problema:
    esempio:

    Case 5: 'caso um
    casella.Text = FormatNumber(((Val(casella.Text)) / 1000000), 8, True, True, True)
    '... successiva memorizzazione nella var
    stanza.lung = CDbl(txtlung.Text)

    Il dato letto, se è un numero decimale piccolo, come accade quando converto da mm, um, o nm, è solo 0!

    stanza.lung è di tipo double ; ho provato con la val e con cdbl ma legge comunque solo 0.
    come mai?
    Grazie...


    Ho risolto
    il problema è che format number considera il . come separatore delle migliaia e , come separatore dei decimali, mentre vb6 considera il .come separatore dei decimali.
    Usando la format e "#,##0.0###" il numero viene letto correttamente, anche se viene visualizzato nella text box come #.###,###
    in ascolto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.