2011-07-04 21 views

cevap

15
Dim db As DAO.Database 
Dim qdf As DAO.QueryDef 
Dim strSql As String 
Set db = CurrentDb 
strSql = "UPDATE Month_Totals Set item_date = [which_date]" & _ 
    " WHERE id = [which_id];" 
Debug.Print strSql 
Set qdf = db.CreateQueryDef(vbNullString, strSql) 
With qdf 
    .Parameters("which_date").Value = Date() 
    .Parameters("which_id").Value = 1 
    .Execute dbFailOnError 
End With 

örnek, yeni, kaydedilmemiş QueryDef kullanılan bu. Kaydedilmiş bir parametre sorgusu varsa, bunun yerine CreateQueryDef hat için bu satırı yerine bunu kullanabilirsiniz:

Set qdf = db.QueryDefs("YourQueryName") 

iki şekilde de, sonra da pozisyonlara göre benim yaptığım gibi adlarıyla bireysel parametrelere bakın, ya da

.Parameters(0).Value = Date() 
.Parameters(1).Value = 1 

Ek notlar: SQL deyiminde ... yani bu yukarıdaki gibi aynı şekilde çalışacaktır

  1. .Value biriçin varsayılan özelliktir, yani burada dahil olmak kesinlikle gerekli değildir. Öte yandan, açık olmak incitmez. Gord aşağıda belirtildiği gibi
  2. , sen .Parameters("which_id")
+3

"Bang gösterimde" daha özlü !which_id gibi parametrenin adı ile "Bang notasyonu" kullanabilirsiniz da parametre değerlerinin ayarlanması için çalışır, mesela, 'QDF! which_id = 1' –

İlgili konular