- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- tabelle collegate di database e visualizzazione!!
-
tabelle collegate di database e visualizzazione!!
ciao a tutti,
ho bisogno di capire dove posso infilare la query che interroghi la tabella uffici per far apparire sulla pagina la dicitura ad es. "Ufficio Personale" anzichè l'id 341 dell'ufficio...nel codice che riporto sotto!
aspetto vostre illuminazioni!!![code]
With objRecordset
.CursorType = adOpenForwardOnly
.CursorLocation = adUseClient
.LockType = adLockReadOnly
.CacheSize = rm
.PageSize = rm
.Source = "SELECT ID, Nome, Cognome, Id_ufficio FROM dipendenti"
.ActiveConnection = strConnection
.Open
Set .ActiveConnection = Nothing
intTtp = .PageCount
If NOT .EOF then
.AbsolutePage = ipn
arrData = .GetRows(rm)
intColsTot = Ubound(arrData,1)
intRowsTot = Ubound(arrData,2)
End If
End With
[code]grazie a tutti,
Marco
-
Io generalmente mi creo sempre una funzioncina per queste cose, almeno la posso riutilizzare.
Function Ufficio(iId) if isNumeric(iId) Then Dim strSql Dim objRs Set objRs = Server.createobject ("ADODB.RecordSet") strSql = "SELECT NOME FROM TABELLA WHERE Id_ufficio= " & iId objRs.open strSql, objConn If Not objRs.Eof Ufficio = objRs("NOME") Else Ufficio = "" End If objRs.Close Set objRs = Nothing Else Ufficio = "" End If End Function **Dim NomeUfficio** With objRecordset .CursorType = adOpenForwardOnly .CursorLocation = adUseClient .LockType = adLockReadOnly .CacheSize = rm .PageSize = rm .Source = "SELECT ID, Nome, Cognome, Id_ufficio FROM dipendenti" .ActiveConnection = strConnection .Open Set .ActiveConnection = Nothing intTtp = .PageCount If NOT .EOF then .AbsolutePage = ipn arrData = .GetRows(rm) intColsTot = Ubound(arrData,1) intRowsTot = Ubound(arrData,2) **NomeUfficio = Ufficio(objRecordset("Id_ufficio"))** End If End With
Ciao
-
@sherlock said:
ciao a tutti,
ho bisogno di capire dove posso infilare la query che interroghi la tabella uffici per far apparire sulla pagina la dicitura ad es. "Ufficio Personale" anzichè l'id 341 dell'ufficio...nel codice che riporto sotto!
aspetto vostre illuminazioni!!!> With objRecordset .CursorType = adOpenForwardOnly .CursorLocation = adUseClient .LockType = adLockReadOnly .CacheSize = rm .PageSize = rm .Source = "SELECT ID, Nome, Cognome, Id_ufficio FROM dipendenti" .ActiveConnection = strConnection .Open Set .ActiveConnection = Nothing intTtp = .PageCount If NOT .EOF then .AbsolutePage = ipn arrData = .GetRows(rm) intColsTot = Ubound(arrData,1) intRowsTot = Ubound(arrData,2) End If End With [code] grazie a tutti, Marco devi cambiare la query. Per fare ciò che chiedi è necessario fare un inner join su un'altra eventuale tabella che abbia tutte le corrispondenze idufficio ->nome ufficio ad esempio se la tabella che si chiama "uffici" è composta ad esempio dai campi ID e NomeUfficio devi usare come query: [CODE]SELECT dipendenti.ID, dipendenti.nome, dipendenti.cognome, dipendenti.id_ufficio, uffici.NomeUfficio FROM dipendenti INNER JOIN uffici ON dipendenti.id_ufficio = uffici.ID;
e poi nel punto in cui lo stampi a video invece di chiamarti id_ufficio ti richiami Nomeufficio.
Se hai bisogno di altri chiarimenti contattami pure
Ciao,
Giuseppe
-
eLLeGi ha perfettamente ragione, io userei però un LEFT OUTER JOIN, testando che il nome dell'ufficio non sia *null, *così da evitare di saltare qualche utente...
-
@artcava said:
eLLeGi ha perfettamente ragione, io userei però un LEFT OUTER JOIN, testando che il nome dell'ufficio non sia *null, *così da evitare di saltare qualche utente...
si giusto
-
grazie ragazzi!
questa del join è una gran cosa!!! Anche con la funzione di Legolas ero riuscito ;)!! Quindi due ottimi metodi entrambi...
grazie davvero di cuore per tutto il supporto che mi avete dato!Marco