Newsgroup: it.comp.appl.access
Titolo: MSDE e Combo Box

Salve a tutto il NG.
Ho un problema con MSDE che francamente con Access non ho mai trovato, ma
onestamente su MSDE tutto funziona diversamente.
Dovrei creare una Combo Box con dei campi quali:
IDCliente
NumeroOrdine
DataOrdine
Semplice no? Solo che dovrebbe prendermi l'IDCliente da un'altra
form....cosa che con access potevo fare benissimo digitando su Criteri:
Forms!Offerte!IDCliente.
Ora quì non è possibile. Ho provato a cercare sull'esempio di northwind ma
non ho trovato nulla....qualcuno mi sa dire come poter fare?? Grazie!
Ultra.

 ha scritto nel messaggio
news:UYD4b.10452$ti2.3...@news2.tin.it...

Imposta l'origine dati della combo da codice
Ciao, AEOM

"AEOM" <in...@FUCK-LAMER.com> ha scritto nel messaggio
news:QLE4b.8710$nw1.2...@news1.tin.it...

Ciao AEOM,
anche io avevo pensato a quello....ma non funziona e non capisco
perchè....non mi da errori di codice eppure non funziona.
Private Sub IDOfferte_Click()
 strSQL As String
  Dim Rs As ADODB.Recordset
  Set Rs = New ADODB.Recordset
    strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
    strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDClienti
= Offerta.IDOfferte"
    strSQL = strSQL & " WHERE (((Offerta.IDOfferte)=
Forms!Offerte01!IDOfferte AND((Offerta.Evaso)= 0))"
    Rs.Open strSQL, CurrentProject.Connection
    Me.IDOfferte.RowSource = strSQL
    Me.IDOfferte.ColumnCount = 3
    Me.IDOfferte.ColumnWidths = 2
    Me.IDOfferte.BoundColumn = 1
Rs.Close
Set Rs = Nothing
End Sub
Secondo te ho sbagliato qualcosa??
Grazie Ultra

 ha scritto nel messaggio
news:UYD4b.10452$ti2.3...@news2.tin.it...

Prova Forms("Offerte")!IDCliente
Namor

 Grazie Ultra
E' solo un'altra alternativa, che tra le altre cose è
comodissima........!!!
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:WAF4b.281523$Ny5.8...@twister2.libero.it...

Salve ragazzi....le ho provate entrambe ma nulla da fare......non funziona
la combo risulta vuota!!
Altre idee???
Grazie Ultra

 ha scritto nel messaggio
news:JdH4b.11718$ti2.4...@news2.tin.it...

Mai avuto un problema simile. Forse ti manca qualcosa.
Origine record, numero colonne, colonna associata, larghezza colonne,
larghezza elenco sono tutte ok?
Namor

 Namor
Guarda tu stesso.....quì mi sembra tutto in ordine non credi?? Non comprendo
come mai non funziona...l'ho sempre usata in fin dei conti.....
Private Sub IDOfferte_Click()
 strSQL As String
  Dim Rs As ADODB.Recordset
  Set Rs = New ADODB.Recordset
    strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
    strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDClienti
= Offerta.IDOfferte"
    strSQL = strSQL & " WHERE (((Offerta.IDOfferte)=
Forms!Offerte01!IDOfferte AND((Offerta.Evaso)= 0))"
    Rs.Open strSQL, CurrentProject.Connection
    Me.IDOfferte.RowSource = strSQL
    Me.IDOfferte.ColumnCount = 3
    Me.IDOfferte.ColumnWidths = 2
    Me.IDOfferte.BoundColumn = 1
Rs.Close
Set Rs = Nothing
End Sub
Grazie ancora
Ultra!

 ha scritto nel messaggio
news:4BH4b.11870$ti2.4...@news2.tin.it...

Ciao Ultra
MSDE non può valutare l'oggetto Forms!Offerte01!IDOfferte  quindi devi
passargli il valore in esso contenuto.
strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente,
Clienti.Ditta,Offerta.DataOfferta, Offerta.Evaso"
strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDClienti =
Offerta.IDOfferte"
strSQL = strSQL & " WHERE (((Offerta.IDOfferte)=" &
Forms!Offerte01!IDOfferte & " AND((Offerta.Evaso)= 0))"
Ciao Giorgio

 Ciao Giorgio
Ciao Giorgio, ben ritrovato.
Avevo già fatto questa prova ma nulla da fare....mi continua a dare errore
Syntax error near ')'
Private Sub Form_Current()
Dim Rs As ADODB.Recordset
Dim strSQL As String
  Set Rs = New ADODB.Recordset
  'Set Me.IDOfferte.Recordset = Rs
    strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
    strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDCliente
= Offerta.IDCliente"
    strSQL = strSQL & " WHERE (((Cliente.IDCliente)='" &
Forms!Ordini01!CodiceCliente & "' AND((Offerta.Evaso)= 0))"
    Rs.Open strSQL, CurrentProject.Connection
    Me.IDOfferte.RowSource = strSQL
    Me.IDOfferte.ColumnCount = 5
    Me.IDOfferte.ColumnWidths = 2
    Me.IDOfferte.BoundColumn = 1
Rs.Close
Set Rs = Nothing
End Sub
Dunque.....CodiceCliente è nvarchar, Evaso è bit, IDCliente è nvarchar.
C'è qualcosa di sbagliato???
Grazie
Ultra

 ha scritto nel messaggio
news:9KX4b.1240$R32....@news2.tin.it...

Ciao Ultra
E' un problema di parentesi, quelle aperte non corrispondono a quelle
chiuse, toglile tutte, in questo caso avere o non avere le parentesi non
cambia nulla.
strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDCliente =
Offerta.IDCliente"
strSQL = strSQL & " WHERE Cliente.IDCliente='" &
Forms!Ordini01!CodiceCliente & "' AND Offerta.Evaso= 0"
Ciao Giorgio.

Giorgio, mi sono accorto di aver pasticciato un po' le cose, ora funziona
però il valore che mi ridà nella combo è:
 SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso.
Strano non trovi?? Dovrebbe ridarmi il valore 1 poi di seguito il 2 evvia di
seguito.....non capisco...... ora ti incollo la routine giusta:
Private Sub Form_Current()
Dim Rs As ADODB.Recordset
Dim strSQL As String
  Set Rs = New ADODB.Recordset
    strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
    strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON Clienti.IDCliente
= Offerta.IDCliente"
    strSQL = strSQL & " WHERE (((Clienti.IDCliente)='" &
Forms!Ordini01!CodiceCliente & "' AND((Offerta.Evaso)= 0)))"
    Rs.Open strSQL, CurrentProject.Connection
    Me.IDOfferte.RowSource = strSQL
    Me.IDOfferte.ColumnCount = 1
    Me.IDOfferte.ColumnWidths = 2
    Me.IDOfferte.BoundColumn = 1
Rs.Close
Set Rs = Nothing
End Sub
Che ne pensi??
Grazie Ultra

 ha scritto nel messaggio
news:f3Y4b.1441$hE5....@news1.tin.it...

Ciao Ultra
1) Controlla che il Tipo Origine Riga sia "Tabella/visualizzazione/stored
procedure" e non "Elenco valori"
    Me.IDOfferte.RowSourceType="Table/View/StoredProc"
2) Tutto il codice relativo al recordser Rs non serve a niente toglilo.
Private Sub Form_Current()
Dim strSQL As String
     strSQL = "SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso"
     strSQL = strSQL & " FROM Clienti INNER JOIN Offerta ON
Clienti.IDCliente = Offerta.IDCliente"
     strSQL = strSQL & " WHERE (((Clienti.IDCliente)='" &
Forms!Ordini01!CodiceCliente & "' AND((Offerta.Evaso)= 0)))"
     Me.IDOfferte.RowSourceType="Table/View/StoredProc"
     Me.IDOfferte.ColumnCount = 1
     Me.IDOfferte.ColumnWidths = 2
     Me.IDOfferte.BoundColumn = 1
     Me.IDOfferte.RowSource = strSQL
End Sub
Ciao Giorgio

 ha scritto nel messaggio
news:bj1iii$gth$1...@lacerta.tiscalinet.it...

Ciao Giorgio, ti prego di leggere il post precedente perchè mi funziona
adesso ma restituisce come risultato una cosa strana, non il valore ossia:
SELECT Offerta.IDOfferte, Clienti.IDCliente, Clienti.Ditta,
Offerta.DataOfferta, Offerta.Evaso
Nel corpo della combo scrive tutta questa riga......
Grazie
Ultra


Ciao Ultra
Ti ho risposto di seguito al post precedente.
Ciao Giorgio

 Ciao Giorgio
Ciao Giorgio,
in effetti era proprio come dicevi tu....ora solo che non riesco a fare
un'operazione da codice......
mentre con access potevo fare un Edit, ora non me lo riconosce e non sò come
dare un valore ad un campo in una tabella.......
Esiste qualcosa al posto dell'Edit???
Grazie
Ultra

 ha scritto nel messaggio
news:lh05b.3511$R32.1...@news2.tin.it...

Ciao Ultra
Nel recordset ADO il metodo Edit non esiste, devi semplicemente variare il
campo ed eseguire l'update.
Rs!NomeCampo="AAAAA'
Rs.Update
Ciao Giorgio.


Ciao Ultra
La x rossa indica che è in corso il recupero dei record e non è il problema.
Quando setti un ADODB.Recordset devi indicare anche: il tipo di cursore,
dove si trova il cursore e il tipo di lock quindi...
rst2 = New ADODB.Recordset
'----- Righe da inserire ------------
rst2.CursorType = adOpenKeyset
rst2.CursorLocation = adUseClient
rst2.LockType = adLockOptimistic
'----------------------------------
rst2.Open strSql2, CurrentProject.Connection
Cerca sull'help le righe che ti ho suggerito, troverai delucidazioni in
merito.
Ciao Giorgio.


Ciao Giorgio, eppure questa cavolo di x rimane sempre rossa ed ho notato che
quando è rossa non mi passa al record nuovo da routine:
DoCmd.GoToRecord , "", acNewRec
Mi dice che non può passare al record successivo.....secondo me c'è qualche
problema......
Grazie Ciao
Ultra

 ha scritto nel messaggio
news:qSl5b.8311$hE5.2...@news1.tin.it...

Ciao Ultra
La x indica che è in corso il recupero dei record dal server, se rimane
sempre rossa vuol dire che ci sono molti record ( 100.000 o più) o che il
subform è in continuo requery.
Controlla l'origine campi secondari e campi master e che non ci sia qualche
evento che forza il requery del subform.
Ciao Giorgio.

Ciao Giorgio,
vorrei sapere come si può far apparire una data in una casella
combinata.....mi spiego.
Ho una combo che prende dei dati da una tbl, dove c'è il campo esercizio che
è l'anno 2000, 2001 etc.....
solo che ho ricavato questi campi in un modo non molto ortodosso.....
ho fatto sul formato aaaa
e sul valore predefinito Date()
Ora quello che esce quando lo vedi è 2003 ma se ci clicchi sopra è
05/09/2003. (e questo già non va bene!)
quando io sulla combo clicco sulla data che mi occore la combo me la
ripresenta come 05/09/2003 e non come 2003 solo......hai una soluzione per
questo? Ah ti premetto che sto usando access 2000 e non MSDE.
Grazie Ultra

 ha scritto nel messaggio
news:GL06b.28055$R32.8...@news2.tin.it...

Ciao ultrareflex
Se la combo ha come origine un campo numerico che è l'anno di esercizio
allora togli il formato e metti come valore predefinito Year(Date())
Ciao Giorgio.


Ciao Giorgio.
Ho provato come dici tu ma non va bene....apparte che la data che mi
presenta come predefinita è quella del 1905.....che cavolo centra non lo
sò.....poi quando clicco sulla data che mi prospetta la combo mi dice: E'
stato immesso un valore non valido per il campo. Eppure non c'è nessun
formato, la form non ha una tbl o una query dietro, mi serve solo per aprire
un report con determinate caratteristiche di dati.
Tu sai perchè succede questo??
Grazie Ultra