Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Problema Database
Forum - Visual Basic 6 - Problema Database

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
nano (Normal User)
Newbie


Messaggi: 7
Iscritto: 22/02/2010

Segnala al moderatore
Postato alle 23:43
Lunedì, 22/02/2010
Scusami per l'errore di sezione.
Sono un principiante. Devo visualizzare una tabella già esistente di un database Access in una MsFlexGrid. Mi potete fornire il codice necessario, in modo che posso almeno iniziare? Grazie in anticipo

PM Quote
Avatar
Phyton91 (Member)
Rookie


Messaggi: 27
Iscritto: 07/12/2008

Segnala al moderatore
Postato alle 9:14
Martedì, 23/02/2010
Carissimo nano,

io non ho le istruzioni necessarie per la MSFlexGrid però ti posso consigliare la DataGrid che ha le proprietà necessarie per collegarle al database e come gestore della connessione al database usa ADO che ha la piena compatibilità con la DataGrid, inoltre puoi gestire le istruzioni SQL da un file di testo che puoi creare tu. Scarica Contact 7 e analizza il codice per usare questo trucchetto.

Spero di esserti stato d'aiuto.

:k:

PM Quote
Avatar
nano (Normal User)
Newbie


Messaggi: 7
Iscritto: 22/02/2010

Segnala al moderatore
Postato alle 10:13
Martedì, 23/02/2010
Per installare Contact 7 il programma mi chiede la password.Dove la prendo? Grazie per l'interessamento.

PM Quote
Avatar
Phyton91 (Member)
Rookie


Messaggi: 27
Iscritto: 07/12/2008

Segnala al moderatore
Postato alle 0:36
Giovedì, 25/02/2010
Ciao nano,

purtroppo nemmeno io mi ricordo la password del software. Domani pubblico la versione con l'exe di installazione senza password.

Spero che ti sia di aiuto.

Phyton91


PM Quote
Avatar
poeo85 (Normal User)
Pro


Messaggi: 104
Iscritto: 27/01/2010

Segnala al moderatore
Postato alle 11:42
Giovedì, 25/02/2010
Dim l_Rs As Recordset
dim Sql as String
' io mi aggiungo una riga nella flexgrid per ogni risultato della query...prima la
' flx.rows = 1 cioè  l'intestazione della flex

    Sql = ""
    Sql = Sql & "SELECT FROM WHERE" & vbCrLf
    
    Set l_Rs = OpenRecordset(Sql)
    If Not (l_Rs.BOF And l_Rs.EOF) Then
        
        Do While Not l_Rs.EOF
            flx.Rows = flx.Rows + 1
            flx.TextMatrix(flx.Rows - 1, colonna1) = Val(l_Rs!camponumerico)
            flx.TextMatrix(flx.Rows - 1, colonna2) = Trim$(l_Rs!campotesto)
            l_Rs.MoveNext
        Loop
    End If
    
    l_Rs.Close
    Set l_Rs = Nothing


spero sia chiaro

Ultima modifica effettuata da poeo85 il 25/02/2010 alle 11:44
PM Quote
Avatar
nano (Normal User)
Newbie


Messaggi: 7
Iscritto: 22/02/2010

Segnala al moderatore
Postato alle 17:49
Giovedì, 25/02/2010
Grazie mille!
nano

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 18:03
Giovedì, 25/02/2010
Ti propongo delle migliorie


Dim l_Rs As Recordset
dim Sql as String

    Sql = ""
    Sql = Sql & "SELECT FROM WHERE" & vbCrLf
  
Sql=Sql & per il programma vuol dire creare una variabile temporanea dove conservare il vecchio valore di Sql, aggiungerci qualcosa e atrtribuire il valore a Sql, ma Sql è appena stata dichiarata.
Poi che significato ha quel vbCrLf alla fine?


    Set l_Rs = OpenRecordset(Sql)
    If Not (l_Rs.BOF And l_Rs.EOF) Then
      
Quì di sprechi ce ne sono 2: effettuare una operazione AND e testarne la negazione
Più semplice usare la proprietà Recordcount

    flx.TextMatrix(flx.Rows - 1, colonna1) = Val(l_Rs!camponumerico)
    flx.TextMatrix(flx.Rows - 1, colonna2) = Trim$(l_Rs!campotesto)
  

Forse, per te, Val(l_Rs!camponumerico) è limitativo, se il campo numerico avesse dei decimali sarebbero tolti. Se invece il val servisse per evitare errori nel caso il campo fosse vuoto sarebbe meglio ricorrere ad un'altra forma per non avere la griglia con degli zeri che in qualche caso sono antiestetici. Anche al campo testo (se fosse vuoto si avrebbe un errore) è opportuno aggiungere una stringa vuota
Per migliorare la leggibilità del tutto aggiungerei un With EndWwith
Codice sorgente - presumibilmente VB.NET

  1. Dim l_Rs As Recordset
  2. Dim Sql as String
  3.  
  4. Sql =  "SELECT ... FROM... WHERE..."  
  5. Set l_Rs = OpenRecordset(Sql)
  6. With l_Rs
  7.     If .Recordcount > 0 Then
  8.        Do While Not .EOF
  9.           flx.Rows = flx.Rows + 1
  10.           if Len(!camponumerico)> 0 Then flx.TextMatrix(flx.Rows-1 , colonna1) = !camponumerico
  11.           flx.TextMatrix(flx.Rows-1, colonna2) = "" & !campotesto
  12.           .MoveNext
  13.        Loop
  14.    End If
  15.    .Close
  16. End With
  17. Set l_Rs = Nothing


Ciao

Ultima modifica effettuata da Alfonso il 25/02/2010 alle 18:05
PM Quote
Avatar
nano (Normal User)
Newbie


Messaggi: 7
Iscritto: 22/02/2010

Segnala al moderatore
Postato alle 18:14
Giovedì, 25/02/2010
O.K. Adesso ho materiale per fare tante prove! Ma se le colonne sono trenta?
Grazie.

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 19:55
Giovedì, 25/02/2010
o così

.TextMatrix(flx.Rows-1 , 1) =
.TextMatrix(flx.Rows-1 , 2) =
.TextMatrix(flx.Rows-1 , ....) =
.TextMatrix(flx.Rows-1 , 30) =

oppure

inserisci sulla form un controllo data Data1

nelle proprietà di MSFlexGrid1 imposti DataSource = Data1

nel codice Set Data1.Recordset = tuoRecordset

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo