Newsgroup: it.comp.appl.access
Titolo: condizione con check-box

ho maschera "M_Ordine" con tre sottomaschere
1-"M_Carichi_Ordine",
2- "M_Carichi_da_Fornitore",
3-"SdettaglioOrdine".
 
Nella sottomaschera "M_Carichi_da_Fornitore" ho inserito una check-box.
 
Ora vorrei che con:
n. 1 record, la check-box non si potesse spuntare
n. 2 records, o uno o l'altro
con piu' di 2, tutti tranne uno
 
Grazie per l'aiuto a creare la condizione
 
 


Ciao Franco,
ci sono diversi modi per ottenere quello che chiedi, l'importante è
avere una casella di testo con una stringa o un numero univoco.
Poniamo di avere un campo "n" con numeri progressivi; su corrente
della sottomaschera "M_Carichi_da_Fornitore"  inserisci:
If Me.n = 3 Then
Me.CasellaControllo8.Enabled = False
Else
Me.CasellaControllo8.Enabled = True
End If
 
Ciao Vladimiro

 Grazie per l'aiuto a creare la condizione
 
Ciao Franco,
ci sono diversi modi per ottenere quello che chiedi, l'importante č
avere una casella di testo con una stringa o un numero univoco.
Poniamo di avere un campo "n" con numeri progressivi; su corrente
della sottomaschera "M_Carichi_da_Fornitore"  inserisci:
If Me.n = 3 Then
Me.CasellaControllo8.Enabled = False
Else
Me.CasellaControllo8.Enabled = True
End If
 
Grazie Vladimiro
non mi sono spiegato bene
 
la mia sottomaschera ha come origine una query
Sql:
SELECT TbCarico.IdCarico, TbCarico.IdOrdine, TbCarico.IdFornitore, 
TbCarico.IdTrasportatore, TbCarico.nDDTFornitore, TbCarico.DataDDTFornitore, 
TbCarico.Targa, TbOrdine.NumeroOrdineVendita, TbCarico.Opzione, 
TBFornitori.NomeFornitore, TbCarico.IdIVATrasportatore, 
TbCarico.IdIVAFornitore
FROM TbOrdine INNER JOIN (TBFornitori INNER JOIN TbCarico ON 
TBFornitori.IDFornitore = TbCarico.IdFornitore) ON TbOrdine.IDOrdine = 
TbCarico.IdOrdine
ORDER BY TBFornitori.NomeFornitore;
 
con 4 campi:
IdCarico
NumeroOrdineVendita
CboFornitore
Opzione = check-box
 
Ora se io inserisco nella casella combinata "CboFornitore"
1-un solo fornitore, la  check-box non deve potersi spuntare,
2-con due fornitori, solo uno dei due puo' essere spuntato (cioe' uno 
spuntato e l'altro no e viceversa)
3-con piu' di due fornitori, possono essere spuntati tutti tranne uno, (non 
ha importanza quale) cioč se li spunto
tutti mi deve dare un messaggio d'errore
 
grazie
 
 

Ciao Franco,
ho capito anche se è un tantino più complicato; nel senso che funziona
nel momento in cui spunti le caselle di controllo, mentre se le stesse
sono già spuntate e cominci a togliere ad ognuna il segno di spunta,
c'è qualche problemino. Intanto comincia a provare così, poi si vedrà
il da farsi:
 
Private Sub CasellaControllo_Click()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select count(IdFornitore)as
IdFornitore1,Count(CasellaControllo)as CasellaControllo1 From Tabella1
Where IdFornitore=" & Me.IdFornitore & " And CasellaControllo=True")
Me.Refresh
If Me.Recordset.RecordCount - rs!CasellaControllo1 =1 Then
MsgBox "Non si può.", vbInformation
Me.CasellaControllo = False
End If
rs.Close
Set rs = Nothing
End Sub
 
Naturalmente devi adattare il nome dei due campi e della tabella.
Ciao Vladimiro.
 

cut
Private Sub CasellaControllo_Click()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select count(IdFornitore)as
IdFornitore1,Count(CasellaControllo)as CasellaControllo1 From Tabella1
Where IdFornitore=" & Me.IdFornitore & " And CasellaControllo=True")
Me.Refresh
If Me.Recordset.RecordCount - rs!CasellaControllo1 =1 Then
MsgBox "Non si può.", vbInformation
Me.CasellaControllo = False
End If
rs.Close
Set rs = Nothing
End Sub
 
Naturalmente devi adattare il nome dei due campi e della tabella.
 
grazie Vladimiro.
Ma non fa quello che mi ero proposto