grazie x il tips Gibra, infatti stavo lavorando ad una cosa del genere, con la tua stringa ricevo un errore di sistassi su rsTmp.Open sql (errore di runtime bla bla ....forse sbaglio io).

codice:
Private Sub Command1_Click()
' salva record
Call connettiTmp
mydal = Format(CDate(Txtfield(1).Text), "mm/dd/yyyy")
myal = Format(CDate(Txtfield(2).Text), "mm/dd/yyyy")
''' x test
'mydal = Format(CDate(Txtfield(1).Text), "yyyy/mm/dd")
'myal = Format(CDate(Txtfield(2).Text), "yyyy/mm/dd")

'sql = "select * FROM tabella1 where (dal between '" & mydal & "' and '" & myal & "')"
'sql = "select * FROM tabella1 where (dal between #" & mydal & "# and #" & myal & "#)"
'sql = "select * FROM tabella1 where (dal>=#" & mydal & "# and dal<=#" & myal & "#)"
'sql = "SELECT COUNT(*) AS Quanti From Tabella1 WHERE" & _
      "(dal BETWEEN #" & mydal & "# AND #" & myal & "#) AND " & _
      "(al BETWEEN #" & mydal & "# AND #" & myal & "#)"""
sql = "SELECT * From tabella1 WHERE" _
       & "(dal BETWEEN #" & mydal & "# AND #" & myal & "#) AND " _
       & "(al BETWEEN #" & mydal & "# AND #" & myal & "#)"""
      
Debug.Print sql
If rsTmp.State = 1 Then rsTmp.Close
rsTmp.Open sql

' datagrid2 solo x il debug
Set DataGrid2.DataSource = rsTmp

If rsTmp.RecordCount = 0 Then
        ' aggiungi record
        With rs
        .AddNew
        .Fields!nome = Txtfield(0).Text
        .Fields!dal = Txtfield(1).Text
        .Fields!al = Txtfield(2).Text
        .Update
         End With
    Else
        MsgBox "periodo non valido", vbCritical
    End If
rsTmp.Close
CnTmp.Close
Set rsTmp = Nothing
Set CnTmp = Nothing
End Sub
diciamo che con questa stringa sembra ke funzioni e non a volte popola in modo corretto altre volte no.
codice:
'sql = "select * FROM tabella1 where (dal between #" & mydal & "# and #" & myal & "#)"
esempio, nel db ho un record dal 09/02/2011 al 13/02/2011, se inserisco sul form
dal 10/02/2011 al 13/02/2011 mi da rsTmp.RecordCount=0 invece di 1 .. pkkè

Avete qualke dritta ?

grazie a tutti.