Çoklu GÜncelleme

Katılım
31 Mart 2008
Mesajlar
91
Excel Vers. ve Dili
2003
sayın hedefkaya, ben dediğiniz hakkında bir fikir yürütemedim, daha açık yazarsanız bilgisi olan arkadaşlar yardımcı olacaktır mutlaka, tam olarak anlatmaya çalıştığınız iş için bir örnek eklerseniz sizi cevaba daha kolay kavuşturur.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın hedefkaya,

Aşağıdaki kodla istediğiniz gerçekleşir sanırım:

Kod:
'************* Code Start **************
' This code was originally written by Mitch Wheat
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of
' Mitch Wheat
'
' Update all open data-bound forms by first closing
' them and then re-opening at the same record.
'
' This code was written by Mitch Wheat
' Jan 16, 1999.
'
' You are free to distribute and use this code as you wish
' but please credit the original author (by leaving this notice intact).
'
Public Sub UpdateAllOpenForms(ByVal strFormName As String)
Const cstrProcName As String = mcstrModuleName & "UpdateAllOpenForms"
Dim frm As Form
Dim rs As Recordset
Dim fld As Field
Dim lngFormcount As Long
Dim i As Long
Dim strCriteria As String
Dim varr() As Variant
Const conDesignView As Long = 0
 
' Ignore any errors...
On Error Resume Next
 
ReDim varr(Forms.Count, 2)
 
' Update any open forms...
i = 0
lngFormcount = 0
For Each frm In Forms
With frm
If .FormName <> strFormName And .CurrentView <> conDesignView Then
strCriteria = vbNullString
Set rs = .RecordsetClone
' Ignore non-data bound forms...
If Not (rs Is Nothing) Then
rs.Bookmark = .Bookmark
 
' First look for Identity field...
For Each fld In rs.Fields
If (fld.Attributes And dbAutoIncrField) = dbAutoIncrField Then
strCriteria = "[" & fld.Name & "]=" & fld.Value
' Found identity (autonumber) field, so exit...
Exit For
End If
Next
 
' If Identity field not found, generate criteria that will locate the current record...
If Len(strCriteria) = 0 Then
For Each fld In rs.Fields
If IsNull(fld.Value) = False Then
' Just use numeric fields (you could alter this to include string and date)...
If fld.Type = dbLong Then
strCriteria = strCriteria & "(" & "[" & fld.Name & "]=" & fld.Value & ") AND "
End If
End If
Next
If Len(strCriteria) > 0 Then strCriteria = Left$(strCriteria, Len(strCriteria) - 5)
End If
Set rs = Nothing
 
' If we have criteria, add this form to the list...
If Len(strCriteria) > 0 Then
lngFormcount = lngFormcount + 1
varr(lngFormcount, 1) = .FormName
varr(lngFormcount, 2) = strCriteria
End If
End If
End If
End With
Next
 
' Close all open forms and reopen at same record...
For i = 1 To lngFormcount
DoCmd.Close acForm, varr(i, 1)
DoCmd.OpenForm varr(i, 1)
With Forms(varr(i, 1))
Set rs = .RecordsetClone
rs.FindFirst varr(i, 2)
If Not rs.NoMatch Then
.Bookmark = rs.Bookmark
End If
Set rs = Nothing
End With
Next
 
Forms(strFormName).SetFocus
Erase varr
 
End Sub
'************* Code End **************

İyi çalışmalar
 
Son düzenleme:
Katılım
2 Nisan 2006
Mesajlar
230
Sayin Modali
Kodun Kullanimi &#304;le &#304;lg&#304;l&#304; Yardim Edeb&#304;l&#304;rm&#304;s&#304;n&#304;z Acaba
Ben B&#304;r Ka&#199; Y&#214;ntem Dened&#304;m Fakat Ba&#350;aramdim
Te&#350;ek&#220;rler
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın hedefkaya,

Örnek ekleyin uyarlıyayım.


İyi çalışmalar
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
442
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
Bİr Komut İle AÇik Olan BÜtÜn Formlari GÜncellemenİn Bİr Yolu Varmi Acaba
Güncellemeden kastınız nedir. Formlareda neyi güncelleyeceksiniz. Biraz daha detay yada bir örnek eklermisiniz.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Yani formlar&#305;n veri kaynaklar&#305;ndan gelen veriler tekrar tablodan okunacak. Mesela bir fatura giri&#351;inde stoktan d&#252;&#351;t&#252;&#287;&#252;n&#252;z &#252;r&#252;n e&#287;er veri g&#252;ncellenmezse tabloda bir eksilir ama form &#252;zerinde hala ayn&#305; g&#246;r&#252;l&#252;r. Bunun i&#231;in herhangi bir yordama yukar&#305;daki gibi kod yazmak veya en kolay&#305; bir kay&#305;t ileri bir kay&#305;t geri &#351;eklinde g&#252;ncellemelisiniz. Bazen bu da sonu&#231; vermedi&#287;inde formu kapat&#305;p tekrar a&#231;mak gerekir. Say&#305;n Modal&#305; Mitch Wheat isimli bir &#351;ahs&#305;n yazd&#305;&#287;&#305; bu kodlarla bu i&#351;i san&#305;r&#305;m mod&#252;l arac&#305;l&#305;&#287;&#305; ile yapacak.
 
Üst