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

نسخة كاملة : مشكله في جمله inner join ارجوا المساعده يرحمكم الله
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوتي 
عندي قاعده بيانات اكسس اسمها feras  وبيها جدولين REALAMوفيه حقول/id ,  AOMUNTT ,     
والاخر output وفيه حقول / id , namess , kinde , resevrn , symble
المشكله عند ربط الجدولين لعرض بياناتهم على التكستات بوكس تضهر رسال خطا وسارفق لكم الكود المستخدم للربط وعرض البيانات 
المطلوب هو عند اختيار رمز الماده (symble ) من  الكومبو بوكس تجي معلومات الجدولين على التكستات بوكس على حاطهها في الفورم 
PHP كود :
Sub showmy()
 
       Dim sqlsta As New OleDbCommand
        Con
.Open()
 
       dataset1.Clear()
 
       Dim sqlstaaa As New OleDbDataAdapter("select * from [INPUT] inner join [REALAM] on INPUT.id=REALAM.ID where  symble Like '%" ComboBox3.Text "%'"Con)

 
       sqlstaaa.Fill(dataset1, ("Input,REALAM"))
 
       Con.Close()

 
       bind1 = New BindingSource(dataset1, ("INPUT,REALAM"))
 
       TextBox12.DataBindings.Add(New Binding("text"dataset1.Tables("REALAM"), "AOMUNTT"))
 
       TextBox9.DataBindings.Add(New Binding("text"dataset1.Tables("INPUT"), "name"))
 
       ComboBox2.DataBindings.Add(New Binding("text"dataset1.Tables("INPUT"), "class"))
 
   End Sub 
ماكو اي ردود هل الموضوع صعب لهذه الدرجه
أرفق مثال ليتم التعديل عليه
اخي الفاضل :

نصحتك من قبل بتغيير اسم الجدول INPUT لأنه من الاسماء المحجوزة ....

مرة اخرى ... انصحك بتغيير اسم الجدول ثم التجربة
يا اخي شرحك غير وافي
على الاقل اعرض رسالة الخطأ الي تظهرلك
الـ output و input كلمات محجوزة ممكن تسبب الك خطاً بالتنفيذ
(13-04-22, 02:06 PM)Jounior_P كتب : [ -> ]اخي الفاضل :

نصحتك من قبل بتغيير اسم الجدول INPUT لأنه من الاسماء المحجوزة ....

مرة اخرى ... انصحك بتغيير اسم الجدول ثم التجربة

نفس المشكله استاذ غيرت اسمه وبقت نفس المشكله
ارجو حل مشكله الكود جربت كود غيره واشتغل تمام بس المشكله عندما لاتكون هناك قيمه مشابه لايضهر رساله ان الرصيد صفر وهذا الكود 
PHP كود :
Imports System.Data
Imports System
.Data.OleDb
Public Class Form1

    Public constr 
As String " provider = microsoft.ace.oledb.12.0;" "data source = " Application.StartupPath "\md.accdb"
 
   Dim con As New OleDbConnection(constr)
 
   Dim sqlstr As String "select * from [input]"


 
   Dim dsds1 As New DataSet
    Dim bind
bind1 As New BindingSource
    Dim da
da1 As OleDbDataAdapter


    Private Sub Form1_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

        fill_comb
()


 
   End Sub


    Sub fill_comb
()
 
       con.Open()
 
       'TextBox1.Text = ""
        ds.Clear()
        Dim da As New OleDbDataAdapter(sqlstr, con)
        da.Fill(ds, "input")
        con.Close()
        ComboBox1.DataSource = ds.Tables("input")
        ComboBox1.DisplayMember = "dic2"
        ComboBox1.ValueMember = "dec1"

    End Sub


    Sub bindtexts()

        TextBox1.DataBindings.Add(New Binding("Text", ds.Tables("input"), "dec3"))
            TextBox2.DataBindings.Add(New Binding("Text", ds.Tables("input"), "dec2"))
            TextBox3.DataBindings.Add(New Binding("Text", ds1.Tables("output"), "tuy"))


    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

    End Sub

    Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
        '
bind = New BindingSource(ds"input")

 
       bindtexts()

 
   End Sub

    Private Sub ComboBox1_Click
(sender As ObjectAs EventArgsHandles ComboBox1.Click
        TextBox1
.DataBindings.Clear()
 
       TextBox2.DataBindings.Clear()
 
       TextBox3.DataBindings.Clear()
 
       Dim sqlstr1 As String "select * from [output] where mohy = '" ComboBox1.Text "' "

 
       con.Open()
 
           'TextBox1.Text = ""
            ds1.Clear()
            Dim da1 As New OleDbDataAdapter(sqlstr1, con)
            da1.Fill(ds1, "output")
            con.Close()

    End Sub

    Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged

    End Sub


End Class 
اخي الفاضل :

ارفق المثال افضل .... او صورة من رسالة الخطـأ التي تظهر لك
السلام عليكم ورحمة الله وبركاته
اخي الكريم 
كل الاخوة جزاهم الله كل خير نصحوك بالابتعاد عن الكلمات المحجوزة للغة في تسمية جداول او حقول مما تسبب الاخطاء القاتلة وانت مصرّ على استخدامها لماذا لا اعلم؟؟؟؟؟!!!!!
الشي الآخر انك تضع الاستعلام في حدث ComboBox1_Click وهذا خطأ أخر ضع الكود في زر بوتون 
قم بتغيير كل الكلمات المحجوزة من (Input , Output) وغيرها ان كانت موجودة في البرنامج

اليك الكود بعد القليل من التعديل لاتنس ان تغير الكلمات المحجوزة قم بالتجربة وان لم تنجح قم بوضع المثال ليصار الى معاينته واصلاح الخلل
كود :
Imports System.Data
Imports System.Data.OleDb
Public Class Form1

   Public constr As String = " provider = microsoft.ace.oledb.12.0;" & "data source = " & Application.StartupPath & "\md.accdb"
   Dim con As New OleDbConnection(constr)
   Dim sqlstr As String = "select * from [input]"


   Dim ds, ds1 As New DataSet
   Dim bind, bind1 As New BindingSource
   Dim da, da1 As OleDbDataAdapter


   Sub fill_comb()
       con.Open()
       'TextBox1.Text = ""
       ds.Clear()
       Dim da As New OleDbDataAdapter(sqlstr, con)
       da.Fill(ds, "[input]")
       con.Close()
       ComboBox1.DataSource = ds.Tables("[input]")
       ComboBox1.DisplayMember = "dic2"
       ComboBox1.ValueMember = "dec1"

   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       fill_comb()
   End Sub

   Sub bindtexts()

       TextBox1.DataBindings.Add(New Binding("Text", ds.Tables("[input]"), "dec3"))
       TextBox2.DataBindings.Add(New Binding("Text", ds.Tables("[input]"), "dec2"))
       TextBox3.DataBindings.Add(New Binding("Text", ds1.Tables("[output]"), "tuy"))
   End Sub

   Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommitted
       'bind = New BindingSource(ds, "input")
       bindtexts()

   End Sub

   ' هذا بوتون
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       TextBox1.DataBindings.Clear()
       TextBox2.DataBindings.Clear()
       TextBox3.DataBindings.Clear()
       Dim sqlstr1 As String = "select * from [output] where mohy = '" + ComboBox1.Text + "' "

       con.Open()
       'TextBox1.Text = ""
       ds1.Clear()
       Dim da1 As New OleDbDataAdapter(sqlstr1, con)
       da1.Fill(ds1, "[output]")
       con.Close()
   End Sub
End Class
باسوود البرنامج هو aa 
تم ارفاق البرنامج للتعديل عليه 
الفورم الثاني الصرف اريد عند الضغط على كومبو بوكس رمز الماده يجيب باقي المعلومات من جدول input  والرصيد الماده من relem  على اساس حقل id  وعند الصرف ينقص الرصيد حسب الكميه المدخله في تكست الكميه واذا كان الرصيد اقل من الكميه المصروفه تضهر رساله خطا
الصفحات : 1 2