VB2005 - Variabile pubblica e passaggio tra due form

martedì 15 maggio 2007 - 16.01

Semerket Profilo | Newbie

Ciao a tutti amici del forum sono di nuovo qui a chiedervi aiuto.....
Ho due form che chiamerò form1 e form2.
Nel form1 ho una griglia con l'elenco di un'anagrafica
con i campi "ID", "Nome", "Cognome"
nel form2 ho tutti i campi dell'anagrafica disposti nel form.
Sono riuscito a prendere il valore della cella del datagrid e
vorrei con un doppio click aprire il form2 visualizzando i
dati che ho selezionato nel form1.
So che devo costruire una query che poi mi riempirà il
dataset del form2 e vorrei passare come variabile per
la query il campo ID del form1. Come posso fare?????
Uso visual basic 2005 e un db firebird (penso che non sia un problema per voi).

Grazie a tutti quelli che mi risponderanno
spero di essere stato chiaro.
Un Saluto di Luce a tutti!

skibu Profilo | Junior Member

Ciao la prima cosa che mi viene in mente è che puoi utilizzare un modulo e lì dichiararti una variabile pubblica che corrisponderà al tuo id, in questo modo questa variabile è visibile in tutto il tuo programma e la puoi utilizzare nella query per caricare tutti i campi nella form2.

Semerket Profilo | Newbie

Grazie per il consiglio.
Ho già un modulo generale dove ho messo la connessione al db
come posso fare per impostare questa variabile pubblica?
Visto che è un software accessibile da più pc in rete
ci sarà qualche problema?
Un Saluto di Luce a tutti!

skibu Profilo | Junior Member

Semplicemente dichiari una variabile pubblica:
per es. public ID_RIGA as Integer

Anch'io utilizzo sempre un modulo per le connessioni, per le variabili e per tutti i metodi che richiamo in più form..e non ci sono problemi, anche se i programmi sono in rete.

the_follet Profilo | Newbie

Ciao,
per il tuo caso specifico, più che una variabile pubblica dichiarata in un modulo io userei una variabile pubblica (o friend) dichiarata nel form di destinazione.

Per capirci, nel form2 dichiari:
Public MyId as integer

Il valore lo passi direttamente dal form1 così:
form2.MyId = 5 (non è necessario che il form sia aperto o già caricato in memoria)
form2.show (o showdialog, come preferisci)

Nell'evento Form_Load di Form2 puoi già utilizzare il valore che ti sei passato in precedenza:
SQLstring = "Select * From Archivio Where Id = " & MyId


Per mia personale convinzione, credo che le variabili pubbliche dichiarate nei moduli vadano utilizzate solo ove realmente indispensabili, poichè possono creare confusione inutile.
Se devi semplicemente passare un valore da un form all'altro, ritengo preferibile l'esempio che ti ho postato sopra.

Poi, ovviamente, se il valore viene riutilizzato in più punti dell'applicazione, allora può essere il caso di utilizzare una variabile pubblica dichiarata in un modulo, come giustamente segnalato da Skibu.

Saluti
Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5