Newsgroup: it.comp.appl.access
Titolo: inserimento dati da maschera non associata

Vorrei inserire i dati in tabella a partire da una form non associata:
questo codice non produce risultati!
Sto facendo prove con dati di tipo diverso, testo, integer e data ma non 
funziona.
Dove sbaglio?
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set rst = CurrentDb().OpenRecordset("procolloentrata")
rst.AddNew
rst!mittente = Me.mittente
rst!nprotocollo = Me.nprotocollo
rst!oggetto = Me.oggetto
rst!datadoc = Me.datadoc
rst!dataricez = Me.datadoc
rst!datainserimento = Me.datainserimento
'rst.Fields("mittente") = Me.mittente
'rst.Fields("datadoc") = Me.datadoc
'rst.Fields("nprotocollo") = Me.nprotocollo
'rst.Fields("oggetto") = Me.oggetto
rst.Update
Set rst = Nothing
End Sub

 End Sub
-- 
MAssimiliano Amendola
Cisa1 - I° Conferenza Italiana per Sviluppatori Access Arezzo 4+5
Giugno 2005 Sono aperte le iscrizioni  Info:  
www.donkarl.com/it

 del controllo della form non associata.
Come hai scritto DBS non serve a nulla se poi non lo usi.
Dichiarare una variabile oggetto As Dao.Database
non ha la sola funzione di accorciare la procedura, anzi fosse
solo quello si eviterebbe un passaggio di assegnazione.
Serve per evitare di aprire nuovi Workspaces.
Ad ogni chiamata del Currentdb viene istanziato un nuovo WorkSpace
e questo non č sempre una cosa gradevole, soprattutto quando
si vuole lavorare con progetti protetti da MDW..!
Ora per funzionare meglio puoi provare cosě, ma devi andare
a verificare la presenza delle Librerie DAO nei Riferimenti del tuo
DB. 
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set dbs=Currentdb()
Set rst = Dbs.OpenRecordset("procolloentrata")
 
 With rst
       .AddNew
       .Fields(mittente).Value _
         = Me.mittente
       .Fields(oggetto).Value _
         = Me.oggetto
       .Fields(nprotocollo).Value _
         = Me.nprotocollo
       .Fields(datadoc).Value _
         = Me.datadoc
       .Update
     End With
 Set rst = Nothing
 End Sub
Saluti.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 di campo e nome del controllo della form non associata.
Non trova il db corrente


 ha scritto nel messaggio 
news:Sd65e.4913$aH3....@news.edisontel.com...

Ok Ma grazie per la risposta, adesso ho utilizzato questo codice:
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set rst = CurrentDb().OpenRecordset("procolloentrata")
With rst
      .AddNew
      .Fields(mittente).Value _
        = Me.mittente
      .Fields(oggetto).Value _
        = Me.oggetto
      .Fields(nprotocollo).Value _
        = Me.nprotocollo
      .Fields(datadoc).Value _
        = Me.datadoc
      .Update
    End With
Set rst = Nothing
End Sub
e l'errore che mi restituisce è: elemento non trovato in questo iniseme in 


  End Sub
 
NOn avevo visto tutto.
Questo non è corretto poichè tende a passare il valore
del Campo non il Nome:
.Fields(nprotocollo).Value= Me.nprotocollo
Questo è corretto:
.Fields("nprotocollo").Value = Me.nprotocollo



forse avevo qualche parentesi di troppo ...

 ha scritto nel messaggio 
news:44d9e126f82bde7ffe...@mygate.mailgate.org...

grazie alex!
'sti maledetti recordset ...
Tu comunque resti dell'opinione di utilizzare dao nelle applicazioni mdb, o 
odbc, mentre ado per i progetti .adp. giusto? 

Ok sistemato, grazie ad entrambi:
questo è il codice funzionante:
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("procolloentrata")
With rst
      .AddNew
      .Fields("IDcoop").Value _
        = Me.IDcoop
      .Fields("mittente").Value _
        = Me.mittente
      .Fields("oggetto").Value _
        = Me.oggetto
      .Fields("nprotocollo").Value _
        = Me.nprotocollo
      .Fields("datadoc").Value _
        = Me.datadoc
      .Update
      .Close
      End With
Set rst = Nothing
un'altra domanda tramite dao non devo formattare le date, o mettere gli 
apici per il testo ? Le prende automaticamente ... almeno sembra ... 

 odbc, mentre ado per i progetti .adp. giusto?
Occorre innanzitutto capire bene le cose:
1)con un BE(JET) è assurdo, se non in previsione di passaggio
  a SQL_SERVER(MSDE) usare ADO, l'uso di Rs ADO impone sempre
  una conversione implicita in DAO per JET.
2)I progetti ADP sono strutturati in modo differente e la loro
  forza stà proprio nel non servirsi di JET pertanto niente conversione
  ADO quindi diventa lo strumento più flessibile e Nativo.
3)Connessioni ODBC verso un MDB si possono fare ma non le vedo
  particolarmente utili, se non per una Tabella User/Password, ma
  anche li si può benissimo ovviare alla cosa aprendo un oggetto
  Database sul file MDB interessato.
Queste sono opinioni personali.
Saluti
@ALex
