Newsgroup: it.comp.appl.access
Titolo: Io non ne so di VB, ma in voi speravo

Già dal topic volevo solo lanciare una provocazione in quanto so ke questo
Ng è visitato da persone valide che fin'ora mi hanno dato sempre buoni
consigli anche se poi forse avvolte ho scelto altre soluzioni anche
migliori. Il punto è che ho postato + volte un quesito facile
facile(penso),ma non per me ;-( , a cui non avete saputo rispondere.
Praticamente :in una maschera chiamata "the mask" ho 5 caselle di
controllo chiamate casella1, casella2, casella3, etc.. e 8 campi : campo1,
campo2,campo3 , etcc...
In piu ho un semplice bottone. Vorrei che alla pressione del bottone, il
valore del campo1 venga duplicato in altrettanti record per quante sono le
casella di controllo=True, inoltre (altrimenti troppo facile), se
casella1=true then campo5="valore", se casella2=true campo5="valore", se
casella3=True then campo5="altro valore" e cosi via per tutti le caselle
selezionate.
Il valore da assegnare è un valore fisso diverso a seconda di quale
casella sia uguale a true.
quindi si avranno n°copie record=n°caselle controllo=true ma con camppo5
di diverso valore.
Grazie di tutto, e spero mi possiate ancora aiutare. Saluti Marco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:ak5sia$3lb$1...@news.newsland.it...

Se, al posto di casella1, casella2, campo1, campo2, valore1, altro valore,
ecc., ci mettessi dei nomi concreti e spiegassi meglio ciò che ti serve,
sarebbe più facile esaminare il tuo caso e venirti incontro.
Mandi Rob.

 ha scritto nel messaggio
news:ak5sia$3lb$1...@news.newsland.it...

Ciao Marco.
Non sempre trovi qualcuno disposto a rispondere alle richieste. Importante e
non pretenderle...
Le risposte non sempre sono il massimo ma certamente il meglio o la strada
più semplice che, chi ti risponde, pensa di proporre per una soluzione.
OK. Nelle maschere ci sono i controlli e non i campi; i pulsanti e non i
bottoni.
Non sei stato molto chiaro nella richiesta...comunque proverò a proporti una
soluzione.
La cosa che mi sembra più importante è quella di sapere quante caselle di
controllo abbiano il valore True (o vero):
metterai un controllo nascosto sulla maschera chiamato
"ControlloNascostoSullaMaschera"
poi questo semplice codice fornirà il numero delle CeckBox impostate a true
e attribuisce il valore al controllo nascosto.
Dim CC As Control, NCC As Integer
NCC = 0
For Each CC In Me.Controls
    If CC.ControlType = 106 Then
        If CC = True Then
        NCC = NCC + 1
        End If
    End If
Next
Me.ControlloNascostoSullaMaschera = NCC
Subito dopo devi accodare (in una tabella) altrettanti record uguali al
campo1 (meglio chiamarlo Controllo1), così:
Dim RCS As Recordset, i As Integer
Set RCS = CurrentDb.OpenRecordset("TuaTabella")
    For i = 1 To NCC
        With RCS
        .AddNew
        !TuoNomeCampoInTabella = Me.Campo1
        .Update
        End With
    Next i
 RCS.Close
Infine per realizzare quello che scrivi con "inoltre (altrimenti troppo
facile), se
casella1=true then campo5="valore", se casella2=true campo5="valore", se
casella3=True then campo5="altro valore" e cosi via per tutti le caselle
 selezionate."
userai un sempli ciclo con If... Then... Else del tipo
If Me.Casella1 = true then me.Campo5 = "quello che vuoi"
If Me.Casella2 = true then Me.CampoN = "quello che vuoi"
...ecc.
Spero che abbia interpretato bene quello che chiedevi.
Ciao, Carlo

 > migliori. 
Ora provo il codice che mi avete fornito e vi faccio sapere. Grazie a
presto


Per tutto il NG, potrebbe essere utile.
Ciao Carlo scusa se ti sto assillando,
ma riuscire a sviluppare questo sistema di posta per me  è molto
importante.
Ho inserito il codice che molto gentilmente e pazientemente mi hai fornito
con alcune semplici modifiche.
Funziona al 99 percento e non capisco perche la variabile NID assegna il
valore numerico <<zero>> a tutti i record duplicati.
Ti riporto il codice esatto che ho inserito :
Private Sub Comando20_Click()  'Tasto Invia"
Dim iI As Integer
Dim Copia As String
Dim cc As Control, ncc As Integer
Dim RCS As Recordset, i As Integer, j As Integer
On Error GoTo Err_Comando20_Click
If tipom = 3 Then
ncc = 0
   [tipom] = 3
   Copia = [Messaggio]
For Each cc In Forms![Posta]![destin].Controls   ' Le checkbox si trovano
in una sottomaschera e non sono associate a  nessun origine controllo
   If cc.ControlType = 106 Then
       If cc = True Then
          Call AccodaRecord(cc.Name)
       End If
   End If
Next
Me.ControlloNascosto = ncc
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
Me.Refresh
Exit_Comando20_Click:
    Exit Sub
Err_Comando20_Click:
    MsgBox Err.Description
    Resume Exit_Comando20_Click
End Sub
Private Sub AccodaRecord(chk As String)
Dim RCS As Recordset, i As Integer, NID As Long
Set RCS = CurrentDb.OpenRecordset("Posta")
    Copia = [Messaggio]
    Select Case chk
        Case marco    ' credo che l'errore stia qui in quanto i record
vengono duplicati tranquillamente , ma non assegna
                                L'IDDestinatario,cioè lo assegna a tutti i
record duplicati=0, inoltre da ricordare che le check si trovano in una
                                sottomaschera chiamata "Destin".
          NID = 19
        Case giz
          NID = 15
        Case angela
          NID = 15
     End Select
     DoCmd.GoToRecord , , acNewRec
     [Messaggio].Value = Copia
     [IDDestinatario] = NID
     [IDMittente] = Forms![Posta]![Aiuto]![facile]
     [Mittente] = [IDMittente]
End Sub
Riesci a capire dove sta l'errore??? Ho fatto 3mila prove ma nada :-(
Fammi sapere e nuovamente Grazie, Saluti Marco
