منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أحتاج كحود الوقوف على آخر سجل و كود للتنقل بين العناصر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم

أخوتي الكرام





أحتاج إلى كود يقوم بعرض آخر سجل محفوظ في قاعدة البيانات من نوع أكسس 2003





وكما أحتاج لكود يقوم بالتنقل بين عناصر الفورم مثلا :

يكون الاختاير لـ TextBox1 عند الضغط على أحد الأزرار و يعد الانتهاء من كتابة ما أريد أضغط Enter فينتقل المؤشر إلى الـ TextBox2 و هكذا

.

.

و لكم جزيل الشكر
لعرض اخر سجل هو بالانتقال لاخر موضع للسجلات وهذا على حسب كيفية ربطك للادوات.
ارفع مثال بسيط للتعديل عليه.
كود :
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
    Dim connstr As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Data.mdb;user id=admin;jet oledb:database password=987"
    Dim conn As New OleDbConnection(connstr)
    Dim ds As New DataSet
    Dim da As OleDbDataAdapter
    Dim cmd As New OleDbCommand
    Dim sqlstr As String = "select * from WInput"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conn.Open()
        Dim da As New OleDbDataAdapter(sqlstr, conn)
        da.Fill(ds, "WInput")
        conn.Close()
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "WInput"
        DataGridView1.Refresh()
        DataGridView1.Columns(0).Visible = False
        DataGridView1.Columns(1).HeaderText = "1"
        DataGridView1.Columns(2).HeaderText = "2"
        DataGridView1.Columns(3).HeaderText = "3"
        DataGridView1.Columns(4).HeaderText = "4"
        DataGridView1.Columns(5).HeaderText = "5"
        DataGridView1.Columns(6).HeaderText = "6"
        DataGridView1.Columns(7).HeaderText = "7"
        DataGridView1.Columns(8).HeaderText = "8"
        DataGridView1.Columns(1).Width = 50
        DataGridView1.Columns(3).Width = 200
        DataGridView1.Columns(6).Visible = False
        DataGridView1.Columns(7).Width = 85
        DataGridView1.Columns(8).Width = 50
        DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        DataGridView1.MultiSelect = False
        With Me.DataGridView1
            .RowsDefaultCellStyle.BackColor = Color.Bisque
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
        End With
        TextBox1.Focus()
    End Sub



أخي الكريم هذا هو الكود الذي أعمل عليه
PHP كود :
Me.BindingContext(ds"WInput").Position Me.BindingContext(ds"WInput").count-
هذا للانتقال لاخر صف في الداتاست
ولو اردت التنقل
PHP كود :
Me.BindingContext(ds"WInput").Position += 
 للتالي 
وللسابق
PHP كود :
Me.BindingContext(ds"WInput").Position -= 

ولاول سجل
PHP كود :
Me.BindingContext(ds"WInput").Position 
لك جزيل الشكر أخي الكريم
بارك الله بك و بمساعدتك

أرجو الإفادة أيضا بكيفية التنقل بين الـ TextBox عن طريق زر Enter
(06-04-16, 04:56 PM)AL - WafaaPro كتب : [ -> ]لك جزيل الشكر أخي الكريم
بارك الله بك و بمساعدتك

أرجو الإفادة أيضا بكيفية التنقل بين الـ TextBox عن طريق زر Enter

  Private Sub TxtQty_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtQty.KeyDown
        If e.KeyCode = Keys.Enter AndAlso Not TxtQty.Text = String.Empty Then

            TxtSell1.Focus()

        End If
اول شي رتب الـTabindex من خصائص الادوات يعني اول مربع نص اجعله 0 والثاني 1 والثالث 2 واجعل زر الامر اخر رقم وهنا 3
PHP كود :
Private Sub TextBox1_KeyDown(sender As ObjectAs KeyEventArgsHandles TextBox1.KeyDownTextBox2.KeyDownTextBox3.KeyDown
        If e
.KeyData Keys.Enter Then
            SendKeys
.Send("{Tab}")
 
       End If
 
   End Sub 
أيضا يوجد هذا الكود لتنقل مابين المربعات النص:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.Enter Then
("{SendKeys.Send("{tab
End If
End Function

وأيصا يوجد بهذه الطريقة:
Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress
If Asc(e.KeyChar) = 13 Then
()TextBox11.Focus
End If
End Sub

Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox11.KeyPress
If Asc(e.KeyChar) = 13 Then
() TextBox12.Focus
End If
End Sub

Private Sub TextBox8_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox8.KeyPress
If Asc(e.KeyChar) = 13 Then
() TextBox9.Focus
End If
End Sub

(06-04-16, 03:54 PM)AL - WafaaPro كتب : [ -> ]
كود :
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
    Dim connstr As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Data.mdb;user id=admin;jet oledb:database password=987"
    Dim conn As New OleDbConnection(connstr)
    Dim ds As New DataSet
    Dim da As OleDbDataAdapter
    Dim cmd As New OleDbCommand
    Dim sqlstr As String = "select * from WInput"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conn.Open()
        Dim da As New OleDbDataAdapter(sqlstr, conn)
        da.Fill(ds, "WInput")
        conn.Close()
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "WInput"
        DataGridView1.Refresh()
        DataGridView1.Columns(0).Visible = False
        DataGridView1.Columns(1).HeaderText = "1"
        DataGridView1.Columns(2).HeaderText = "2"
        DataGridView1.Columns(3).HeaderText = "3"
        DataGridView1.Columns(4).HeaderText = "4"
        DataGridView1.Columns(5).HeaderText = "5"
        DataGridView1.Columns(6).HeaderText = "6"
        DataGridView1.Columns(7).HeaderText = "7"
        DataGridView1.Columns(8).HeaderText = "8"
        DataGridView1.Columns(1).Width = 50
        DataGridView1.Columns(3).Width = 200
        DataGridView1.Columns(6).Visible = False
        DataGridView1.Columns(7).Width = 85
        DataGridView1.Columns(8).Width = 50
        DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        DataGridView1.MultiSelect = False
        With Me.DataGridView1
            .RowsDefaultCellStyle.BackColor = Color.Bisque
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
        End With
        TextBox1.Focus()
    End Sub



أخي الكريم هذا هو الكود الذي أعمل عليه
عن تجربة بعض انظمة التشغيل ما تسمح باستخدام SendKeys.Send
فتعديلا على كود الاخ ghaner joseph
كود :
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
    If keyData = Keys.Enter Then Me.SelectNextControl(ActiveControl, True, True, True, True)
End Function
بشرط أن لا يكون أحد ادوات TextBox متعدد الأسطر يعني لازم يكون Multiline = False
(06-04-16, 06:04 PM)ghaner joseph كتب : [ -> ]أيضا يوجد هذا الكود لتنقل مابين المربعات النص:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
       If keyData = Keys.Enter Then
      ("{SendKeys.Send("{tab
       End If
   End Function

وأيصا يوجد بهذه الطريقة:
Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress
       If Asc(e.KeyChar) = 13 Then
           ()TextBox11.Focus
       End If
   End Sub

   Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox11.KeyPress
       If Asc(e.KeyChar) = 13 Then
          () TextBox12.Focus
       End If
   End Sub

   Private Sub TextBox8_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox8.KeyPress
       If Asc(e.KeyChar) = 13 Then
          () TextBox9.Focus
       End If
   End Sub

(06-04-16, 03:54 PM)AL - WafaaPro كتب : [ -> ]
كود :
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
    Dim connstr As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Data.mdb;user id=admin;jet oledb:database password=987"
    Dim conn As New OleDbConnection(connstr)
    Dim ds As New DataSet
    Dim da As OleDbDataAdapter
    Dim cmd As New OleDbCommand
    Dim sqlstr As String = "select * from WInput"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conn.Open()
        Dim da As New OleDbDataAdapter(sqlstr, conn)
        da.Fill(ds, "WInput")
        conn.Close()
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "WInput"
        DataGridView1.Refresh()
        DataGridView1.Columns(0).Visible = False
        DataGridView1.Columns(1).HeaderText = "1"
        DataGridView1.Columns(2).HeaderText = "2"
        DataGridView1.Columns(3).HeaderText = "3"
        DataGridView1.Columns(4).HeaderText = "4"
        DataGridView1.Columns(5).HeaderText = "5"
        DataGridView1.Columns(6).HeaderText = "6"
        DataGridView1.Columns(7).HeaderText = "7"
        DataGridView1.Columns(8).HeaderText = "8"
        DataGridView1.Columns(1).Width = 50
        DataGridView1.Columns(3).Width = 200
        DataGridView1.Columns(6).Visible = False
        DataGridView1.Columns(7).Width = 85
        DataGridView1.Columns(8).Width = 50
        DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        DataGridView1.MultiSelect = False
        With Me.DataGridView1
            .RowsDefaultCellStyle.BackColor = Color.Bisque
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
        End With
        TextBox1.Focus()
    End Sub



أخي الكريم هذا هو الكود الذي أعمل عليه

(06-04-16, 06:04 PM)ghaner joseph كتب : [ -> ]أيضا يوجد هذا الكود لتنقل مابين المربعات النص:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
       If keyData = Keys.Enter Then
      ("{SendKeys.Send("{tab
       End If
   End Function

وأيصا يوجد بهذه الطريقة:
Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress
       If Asc(e.KeyChar) = 13 Then
           ()TextBox11.Focus
       End If
   End Sub

   Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox11.KeyPress
       If Asc(e.KeyChar) = 13 Then
          () TextBox12.Focus
       End If
   End Sub

   Private Sub TextBox8_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox8.KeyPress
       If Asc(e.KeyChar) = 13 Then
          () TextBox9.Focus
       End If
   End Sub

(06-04-16, 03:54 PM)AL - WafaaPro كتب : [ -> ]
كود :
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
    Dim connstr As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Data.mdb;user id=admin;jet oledb:database password=987"
    Dim conn As New OleDbConnection(connstr)
    Dim ds As New DataSet
    Dim da As OleDbDataAdapter
    Dim cmd As New OleDbCommand
    Dim sqlstr As String = "select * from WInput"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conn.Open()
        Dim da As New OleDbDataAdapter(sqlstr, conn)
        da.Fill(ds, "WInput")
        conn.Close()
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "WInput"
        DataGridView1.Refresh()
        DataGridView1.Columns(0).Visible = False
        DataGridView1.Columns(1).HeaderText = "1"
        DataGridView1.Columns(2).HeaderText = "2"
        DataGridView1.Columns(3).HeaderText = "3"
        DataGridView1.Columns(4).HeaderText = "4"
        DataGridView1.Columns(5).HeaderText = "5"
        DataGridView1.Columns(6).HeaderText = "6"
        DataGridView1.Columns(7).HeaderText = "7"
        DataGridView1.Columns(8).HeaderText = "8"
        DataGridView1.Columns(1).Width = 50
        DataGridView1.Columns(3).Width = 200
        DataGridView1.Columns(6).Visible = False
        DataGridView1.Columns(7).Width = 85
        DataGridView1.Columns(8).Width = 50
        DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        DataGridView1.MultiSelect = False
        With Me.DataGridView1
            .RowsDefaultCellStyle.BackColor = Color.Bisque
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
        End With
        TextBox1.Focus()
    End Sub

تستطيع ايضا وضع صوركأسهماوأيقونات لتنقل بين السجلات مشروعك مثلا:

 Private Sub PictureBox9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox9.Click
        Me.BindingContext(DS1, "information").Position = 0
    End Sub

    Private Sub PictureBox11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox11.Click
        Me.BindingContext(DS1, "information").Position -= 1
    End Sub

    Private Sub PictureBox8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox8.Click
        Me.BindingContext(DS1, "information").Position += 1
    End Sub

    Private Sub PictureBox10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox10.Click
        Me.BindingContext(DS1, "information").Position = Me.BindingContext(DS1, "information").Count - 1
    End Sub

   

Dim a, b, c As Single
''''''''''''''''';عمليات حسابية
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Label1.Text = a
Label2.Text = b
c = b + a
Label26.Text = c
End Sub
الصفحات : 1 2