Oppure

Loading
26/01/08 23:54
gantonio
Inserisci in un form una listbox e un pulsante e usa questo codice. In questa versione pero', il tabellone viene mostrato "al contrario" ... vedi tu di adattarlo ...

Option Explicit

Private cn As Connection

Private Sub Command1_Click()
    Dim rs As ADODB.Recordset
    Dim RU(1 To 10) As String
    Dim R As Integer
    Dim N As Integer
    Dim RN(1 To 10, 1 To 90)
    Dim C(1 To 10)
    Dim NN As Integer
    Dim NS As String * 150
    Dim v As Integer
    
    RU(1) = "BA"
    RU(2) = "CA"
    RU(3) = "FI"
    RU(4) = "GE"
    RU(5) = "MI"
    RU(6) = "NA"
    RU(7) = "PA"
    RU(8) = "RO"
    RU(9) = "TO"
    RU(10) = "VE"

    With List1
        .Font.Name = "Terminal"
        .Font.Size = 9
        .Clear
        NS = Space$(150)
        For R = 1 To 10
            Mid$(NS, (R - 1) * 15 + 1) = "----- " & RU(R) & " ----- "
        Next R
        .AddItem NS
        .AddItem ""
    End With
    
    For R = 1 To 10
        C(R) = 0
        For N = 1 To 90
            RN(R, N) = -1
        Next N
    Next R
    
    Set rs = New ADODB.Recordset
    
    rs.Open "SELECT * FROM Archivio ORDER BY Id DESC", cn, adOpenForwardOnly
    
    Do While Not rs.EOF
        NS = Space$(150)
        For R = 1 To 10
            If C(R) < 90 Then
                For NN = 1 To 5
                    v = Val(rs.Fields(RU(R) & CStr(NN)).Value)
                    If RN(R, v) = -1 Then
                        RN(R, v) = v
                        C(R) = C(R) + 1
                        Mid$(NS, (R - 1) * 15 + (NN - 1) * 3 + 1) = Format$(v, "00")
                    Else
                        Mid$(NS, (R - 1) * 15 + (NN - 1) * 3 + 1) = "--"
                    End If
                Next NN
            End If
        Next R
        List1.AddItem NS
        
        rs.MoveNext
    Loop
    
    rs.Close
    
    Set rs = Nothing
End Sub

Private Sub Form_Load()
    Set cn = New ADODB.Connection
    
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\estrazioni.mdb;Persist Security Info=False"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    cn.Close
    
    Set cn = Nothing
End Sub

aaa
27/01/08 10:24
magicolotto
perfettoooo


non so come ringraziartiiii

grazieeee






cmq sei fantastico

e devo ammettere che non ce l'avrei mai fatta a creare tale meccanismo

adesso devo capire il xchè nella listbox

scrive anche tutte le righe per quanti sono i recordset
aaa
27/01/08 10:26
magicolotto
scus a la domanda.....

questo : Space$(150)

che vuol dire?
aaa
27/01/08 10:51
gantonio
non so come ringraziartiiii


Di nulla ...

scrive anche tutte le righe per quanti sono i recordset


Cioe'?

questo : Space$(150)

che vuol dire?


Ottiene una stringa di 150 spazi ...
Ultima modifica effettuata da gantonio 27/01/08 10:52
aaa
27/01/08 10:55
gius
La funzione space,non ho guardato il codice,ma restituisce un numero di spazi indicati
es.
Dim nome As String
nome = "Hello" & Space$(8) & "World"
MsgBox nome


La funzione restituisce un msgbox e tra hello ed world ci sono 8 spazi:D
aaa
27/01/08 12:01
magicolotto
Postato originariamente da gantonio:




scrive anche tutte le righe per quanti sono i recordset

Cioe'?


cioè quando elaboro...
mi scrive tutto cio' che gli chiediamo
dopo l'ultima riga della list box
vengono scritte altre righe , ma vuote
esse sono tantissime
credo che siano pari al numeri dei recordset presenti in archivio

mentre credo, che non dovrebbero esserci..

non so se sono stato chiaro...
di nuovo grazieee
aaa
27/01/08 12:38
gantonio
Come al solito confondi recordset e record ...

Comunque, questa e' la parte di codice con le modifiche che devi sostituire

Private Sub Command1_Click()
    Dim rs As ADODB.Recordset
    Dim RUS As String
    Dim RU() As String
    Dim R As Integer
    Dim N As Integer
    Dim RN(1 To 10, 1 To 90)
    Dim C(1 To 10)
    Dim NN As Integer
    Dim NS As String * 150
    Dim v As Integer
    Dim p As Integer
    Dim ss As String * 2
    
    RUS = "--*BA*CA*FI*GE*MI*NA*PA*RO*TO*VE*"
    RU = Split(RUS, "*")

    With List1
        .Font.Name = "Terminal"
        .Font.Size = 9
        .Clear
        NS = Space$(150)
        For R = 1 To 10
            Mid$(NS, (R - 1) * 15 + 1) = "----- " & RU(R) & " ----- "
        Next R
        .AddItem NS
        .AddItem ""
    End With
    
    For R = 1 To 10
        C(R) = 0
        For N = 1 To 90
            RN(R, N) = -1
        Next N
    Next R
    
    Set rs = New ADODB.Recordset
    
    rs.Open "SELECT * FROM Archivio ORDER BY Id DESC", cn, adOpenForwardOnly
    
    Do While Not rs.EOF
        NS = Space$(150)
        For R = 1 To 10
            If C(R) < 90 Then
                For NN = 1 To 5
                    v = Val(rs.Fields(RU(R) & CStr(NN)).Value)
                    p = (R - 1) * 15 + (NN - 1) * 3 + 1
                    If RN(R, v) = -1 Then
                        RN(R, v) = v
                        C(R) = C(R) + 1
                        ss = Format$(v, "00")
                    Else
                        ss = "--"
                    End If
                    Mid$(NS, p) = ss
                Next NN
            End If
        Next R
        If NS <> Space$(150) Then List1.AddItem NS
        
        rs.MoveNext
    Loop
    
    rs.Close
    
    Set rs = Nothing
End Sub
Ultima modifica effettuata da gantonio 27/01/08 12:38
aaa
27/01/08 14:13
magicolotto
sempre piu mi accorgo delle mie incapacita'



sei davvero un grande

non vorrei pretendere...


che mi consigli

su come deve mettere il totale dei ritardi?

aaa