mykele80 Inserito: 25 luglio 2008 Segnala Inserito: 25 luglio 2008 Salve a tutti, mi servirebbe il seguente aiutino...utilizzo un touchscreen con su WinCC Flex 2005.Ho creato un pulsante che mi richiama uno script grazie al quale voglio caricare dei dati da un database in formato .mdb. Ho creato il collegamento al DB ma voglio caricare la riga successiva ogni volta che premo il pulsante. Che istruzione devo usare?Purtroppo il cliente aspetta... maledetta fretta!!!Grazie mille, Michele
pescatori Inserita: 25 luglio 2008 Segnala Inserita: 25 luglio 2008 Devi crearti un recordset per memorizzare i dati prelevati con la query dal DB e poi usi i vari metodi MoveFirst, MoveNext, etc per spostarti all'interno del recordset.Guarda qui per avere un esempio:Elencare record tabelle AccessNon so però dirti se WinCC Flex supporta pienamente tutto questo, comunque prova.
mykele80 Inserita: 25 luglio 2008 Autore Segnala Inserita: 25 luglio 2008 Grazie per l'indicazione, mi è stata molto utile, perchè grazie a questa ho fatto un piccolo passo in avanti; clicco sul pulsante che richiama lo scipt e invece che mostrarmi i dati della prima riga mi mostra quelli della seconda riga. Quindi sembrerebbe che il comando funzioni. Il problema è che mi blocco su come posso richiamare i record successivi.Io ho fatto così:Dim conn Dim sourceDim comSQLDim resSQLDim upSQL'Apre la connessioneSet conn=CreateObject("ADODB.Connection")source="DBQ=" & ("C:\DatiProduzione.mdb") conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; " & source Set resSQL=CreateObject("ADODB.RecordSet")comSQL="SELECT Commessa FROM PianificazioneCommesse WHERE Estinta=0;" resSQL.Open comSQL, connresSQL.MoveNext'Trasferimento delle informazioni di produzione al controllore se ci sono commesse ancora da produrre SmartTags("NCommessa")=CStr(resSQL("Commessa"))resSQL.closeconn.closeSi deduce quindi che MoveNext è dopo l'apertura del DB. Vi sembra corretto?
pescatori Inserita: 28 luglio 2008 Segnala Inserita: 28 luglio 2008 (modificato) Appenna dopo che hai fatto la query usi il metodo MoveFirst per posizionarti sul primo record, poi se si utilizza MoveNext ci si può spostare in avanti; ogni volta che si riapre la connessione riparti sempre dall'inizio. Dovresti usare una variabile interna da usare come indice per tenere memoria del record a cui stai puntando: la prima volta che ti connetti e ti posizioni con MoveFirst sul primo record la setti uguale ad 1; nel pulsante che dice di avanzare al record successivo la incrementi di 1 e rifai tutto ti riconnetti ti rimetti sul primo record e poi fai un loop per avanzare di tante posizioni quante sono indicate dal tuo indice locale.Prova a guardare questo esempio fornito da Siemens su come usare WinCC flexible e SQL, usa esattamente lo stesso metodo, solo che qui utilizza una tabellina in modo da visualizzare più righe contemporaneamente.Accesso SQL DB con WinCC flexible Modificato: 28 luglio 2008 da pescatori
mykele80 Inserita: 30 luglio 2008 Autore Segnala Inserita: 30 luglio 2008 Grazie Pescatori della tip, ma purtroppo dopo averci passato + di 1 giorno a provare a realizzare quello che mi hai consigliato ci ho rinunciato,a favore di una soluzione meno complicata, anche se non mi soddisfa pienamente. Non so per quale motivo mi dava continui errori, non ho capito se di sintassi o altro. comunque imposto un flag ogni volta che acquisisco un set di dati e, arrivato alla fine della tabella li resetto tutti, ricominciando dall'inizio. Mi va bene comunque.Grazie ancora
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora