Püf2....Forma ve rapora sıra no ekleme

Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba :hey:

Rapor için:
Design(tasarım) görünümünde reportu (raporu) açın.
Detail(ayrıntı) kısmına bir textbox ekleyin.Üstüne gelin ve mouse sağ tuş properties(özellikler)i seçin ve aşağıdakileri yapın.

Control Source(Denetim Kaynağı) na "=1" yazın
Running Sum da Over Group seçin.

Not:Over All u seçerseniz gruplamadan sırayla numara verir.

Form için:
Design(tasarım) görünümünde formu açın.
Detail(ayrıntı) kısmına bir textbox ekleyin.Üstüne gelin ve mouse sağ tuş properties(özellikler)i seçin ve Control Source (Denetim Kaynağı) una "=Form.CurrentRecord" yazın.

İyi Çalışmalar
 
Katılım
16 Mayıs 2005
Mesajlar
12
sayın jale hanım ilginize teşekkür ederim. Fakat sizin bu yazdığınız kod sürekli form da çalışmıyor ,sizin daha önce de bir başka kişiye göndermiş olduğunuz cevabı okumuş ve uygulamıştım . ozaman da olmadı gene denedim olmuyor.Ã?zellikle belirtmiştim formum sürekli form ,eğer siz bunu deneyip gönderdiyseniz ben hata yapıyorumdur. bu visial basic de çalışıyor fakat access de olmuyor hatta sadece denetim kaynağına [CurrentRecord] yazsanız da olur .Fakat bu tek form da çalışıyor . ilginizden dolayı teşekkür ederim. başka usuller varsa yardımlarınızı bekliyorum .iyi çalışmalar..... :kafa:
 
Katılım
16 Mayıs 2005
Mesajlar
12
jale
sayın jale hanım ilginize teşekkür ederim. Fakat sizin bu yazdığınız kod sürekli form da çalışmıyor ,sizin daha önce de bir başka kişiye göndermiş olduğunuz cevabı okumuş ve uygulamıştım . ozaman da olmadı gene denedim olmuyor.Ã?zellikle belirtmiştim formum sürekli form ,eğer siz bunu deneyip gönderdiyseniz ben hata yapıyorumdur. bu visial basic de çalışıyor fakat access de olmuyor hatta sadece denetim kaynağına [CurrentRecord] yazsanız da olur .Fakat bu tek form da çalışıyor . ilginizden dolayı teşekkür ederim. başka usuller varsa yardımlarınızı bekliyorum .iyi çalışmalar.....
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba

Aşağıdaki code'u bir modüle kopyalayın.Sonrada forma bir textbox ekleyip, denetim kaynağına =RowNum([Form]) yazın.

Code sürekli formlarda çalışır.

[vb:1:300871e22e]Public Function RowNum(frm As Form) As Variant
On Error GoTo Err_RowNum
'Purpose: Numbering the rows on a form.
'Usage: Text box with ControlSource of: =RowNum([Form])

With frm.RecordsetClone
.Bookmark = frm.Bookmark
RowNum = .AbsolutePosition + 1
End With

Exit_RowNum:
Exit Function

Err_RowNum:
If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row.
Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description
End If
RowNum = Null
Resume Exit_RowNum
End Function
[/vb:1:300871e22e]

İyi Çalışmalar
 
Katılım
16 Mayıs 2005
Mesajlar
12
selam :D
jale hanım verdiğiniz kodu denedim çalışıyor ilginize teşekkür ederim. Ben sorunuma çare bulmuştum ama sizin yönteminiz hakikaten daha kolay ,,
arkadaşlara benim gene bu sitede tesadüfen bulduğum farklı bir metoduda yazmak istedim isteyen bunu da kullanabilir.

'Aşağıdaki kodun doğru çalışabilmesi için Tools \Referans menu'den Microsoft DAO 3.6 Object Library 'yi ekle
'sürekli formlarda birden başlayarak sıra no vermek için ilk önce aşagıdaki kodu yeni bir modul açıp içine kopyala
Function GetLineNumber(F As Form, KeyName As String, KeyValue)
Dim rs As Recordset
Dim CountLines

On Error GoTo Err_GetLineNumber

Set rs = F.RecordsetClone

' Find the current record.
Select Case rs.Fields(KeyName).Type
' Find using numeric data type key value?
Case DB_INTEGER, DB_LONG, DB_CURRENCY, DB_SINGLE, _
DB_DOUBLE, DB_BYTE
rs.FindFirst "[" & KeyName & "] = " & KeyValue
' Find using date data type key value?
Case DB_DATE
rs.FindFirst "[" & KeyName & "] = #" & KeyValue & "#"
' Find using text data type key value?
Case DB_TEXT
rs.FindFirst "[" & KeyName & "] = '" & KeyValue & "'"
Case Else
MsgBox "ERROR: Invalid key field data type!"
Exit Function
End Select

' Loop backward, counting the lines.
Do Until rs.BOF
CountLines = CountLines + 1
rs.MovePrevious
Loop

Bye_GetLineNumber:
' Return the result.
GetLineNumber = CountLines

Exit Function

Err_GetLineNumber:
CountLines = 0
Resume Bye_GetLineNumber

End Function

'daha sonra sürekli formunda ilişkisiz bir metinKutucuğu oluşturun.
'en son olarak da bu metin kutucuğunun denetim kaynağına
'=GetLineNumber([Form];"id";[id])
'yaz buradaki id adını tablonda otomatik Sayı alanına verdiğin satır adıyla değiştir.
'buda benim tel defterimdeki otomatik Sayı satırına verdiğim isim
'=GetLineNumber([Form];"SIRA NO";[SIRA NO])burayı tablonda verdiğin isimle değiştir.

İYİ ÇALIÞMALAR
 
Üst