DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
'************* 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 **************
Güncellemeden kastınız nedir. Formlareda neyi güncelleyeceksiniz. Biraz daha detay yada bir örnek eklermisiniz.Bİr Komut İle AÇik Olan BÜtÜn Formlari GÜncellemenİn Bİr Yolu Varmi Acaba