Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Aiuto Date!!!!!!

    ho ancora bisogno di aiuto con i dati di tipo date....
    vi spiego di cosa ho bisogno: ho un elenco di date (vettore) e devo ricercare e stampare le date comprese in un intervallo di altre due date che inserisco tramite text io ho provato così:

    For cont = 1 To n <----(totale elementi del vettore)
    If Data1 <= vettore(cont) <= Data2 Then
    print
    end if
    Next cont


    non mi da errore nel momento in cui io lo avvio semplicemente sembra ignorare il comando e stampa pari pari tutto il vettore senza eliminare le date che non fanno parte dell'intervallo.
    Non so se esiste un comando con le date che mi faccia quello che cerco se qualcuno mi può aiutare vi ringrazio anticipatamente.

    TANKS!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Le date devono essere contenute in tipi di dati appositi e per il confronto devi usare l'operatore logico AND ... Un esempio

    codice:
     Dim d As Date
     Dim d1 As Date
     Dim d2 As Date
        
     d1 = CDate("15/10/2006")
     d2 = CDate("15/12/2006")
        
     d = CDate("20/11/2006")
        
     If d >= d1 And d <= d2 Then
      Print "OK"
     End If

    P.S. Attenzione al titolo ... ! Non hai ancora letto il Regolamento ...

  3. #3
    ehm veramente l'ho fatto subito dopo........grazie ancora oregon sei il mio salvatore

  4. #4
    ok allora adesso invece di darmi tutti i dati non me ne da nessuno ma nn mi dice neanche che ci sia un errore....n realtà comunque si tratta di una tabella cioè un vettore di record ti faccio vedere il codice:

    For cont = 1 To n
    If azioni(cont).dataemissione >= datauno And azioni(cont).dataemissione <= datadue Then
    With MSFlexGrid1
    .Row = cont
    .Col = 0
    .Text = azioni(cont).codice
    .Col = 1
    .Text = azioni(cont).nome
    .Col = 2
    .Text = azioni(cont).tipotitolo
    .Col = 3
    .Text = azioni(cont).vn
    .Col = 4
    .Text = azioni(cont).dataemissione
    .Col = 5
    .Text = azioni(cont).dataacquisto
    End With
    End If
    Next cont

    come hai potuto notare io voglio stampare in un msflexgrid solo i dati relativi ai record che hanno la dataemissione compresa tra le due date che inserisco tramite text. ti ho riportato solo la parte del comando che pare non funzioni.......
    ancora grazie

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma come ti avevo detto i dati devono essere di tipo Date ...

    Quelli che usi nella If (azioni(cont).dataemissione , datauno e datadue) sono di tipo Date?

  6. #6
    si certo sono tutti dichirati e di tipo date!

  7. #7
    ti faccio vedere il tutto

    n = Val(Text1)
    MSFlexGrid1.Clear
    MSFlexGrid1.Rows = n + 1
    MSFlexGrid1.Cols = 6
    With MSFlexGrid1
    .Row = 0
    .Col = 0
    .Text = "Codice"
    .Col = 1
    .Text = "Nome"
    .Col = 2
    .Text = "Tipo titolo"
    .Col = 3
    .Text = "Valore nominale"
    .Col = 4
    .Text = "Data emissione"
    .Col = 5
    .Text = "Data acquisto"
    End With
    Data1 = CDate(Text2.Text)
    Data2 = CDate(Text3.Text)
    For cont = 1 To n
    If azioni(cont).dataemissione >= datauno And azioni(cont).dataemissione <= datadue Then
    With MSFlexGrid1
    .Row = cont
    .Col = 0
    .Text = azioni(cont).codice
    .Col = 1
    .Text = azioni(cont).nome
    .Col = 2
    .Text = azioni(cont).tipotitolo
    .Col = 3
    .Text = azioni(cont).vn
    .Col = 4
    .Text = azioni(cont).dataemissione
    .Col = 5
    .Text = azioni(cont).dataacquisto
    End With
    End If
    Next cont
    End Sub

    nel modulo:

    Public Type azionirighe
    codice As String
    nome As String
    tipotitolo As String
    vn As Single
    dataemissione As Date
    dataacquisto As Date
    End Type
    Public azioni() As azionirighe
    Public comodo As azionirighe
    Public n As Integer
    Public datauno, datadue As Date


    evito di farti vedere il comando dell'inserimento dati e dell'ordinamento vedi se riesci a capire meglio....
    grazie...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Tra la For e la If aggiungi la riga

    Debug.Print datauno & " " & azioni(cont).dataemissione & " " & datadue

    e dimmi cosa viene visualizzato nella finestra di debug

  9. #9
    Originariamente inviato da 18micetta88
    Data1 = CDate(Text2.Text)
    Data2 = CDate(Text3.Text)
    For cont = 1 To n
    If azioni(cont).dataemissione >= datauno And azioni(cont).dataemissione <= datadue Then...





    Originariamente inviato da 18micetta88
    Public datauno, datadue As Date
    Occhio, queste NON sono due date !!
    Non puoi usare questa sintassi, devi fare:
    Public datauno As Date, datadue As Date
    altrimenti dichiari la prima variabile SENZA specificare il tipo, e diventa un Variant.


    Ciao !
    IceCube_HT (VB6 fan Club)

  10. #10
    oregon ho provato a fare quello che dici ma nn mi fa niente neanche il deibug è come se lo ignora il problema ora è sempre lo stesso anche cambiando la dichiarazione come ha detto icecube...

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.