ورود

View Full Version : آپدیت دیتابیس



yshahab
یک شنبه 27 اردیبهشت 1388, 15:10 عصر
سلام
من برنامه نوشتم که قیمت جنسی را محاسبه می کند :
نام جنس :
تعداد :
قیمت واحد :
قیمت کل : محاسبه می شود
ولی وقتی قیمت واحد و تعداد را ویرایش می کنم در دیتا بیسم این تغییرات ذخیره می شود ولی قیمت کل آپدیت نمیشود .!
دیتابیس : » اکسس

xxxxx_xxxxx
یک شنبه 27 اردیبهشت 1388, 17:05 عصر
مسلماً اين تغيير به طور خودكار انجام نميشه. مگر براش كوئري نوشته باشيد. (كه باز هم معني خودكار رو نميده)
شما بايد بعد از هر بار ويرايش قيمت واحد و تعداد، مجدداً قيمت كل را محاسبه كنيد. اين وظيفه برنامه نويس هست.

موفق باشيد/

yshahab
یک شنبه 27 اردیبهشت 1388, 18:59 عصر
اين برنامه هارو واسه خودم مينويسم پس خواهشا كمك كنين تا بفهمم چجوري بايد اينكارو كنم ؟

xxxxx_xxxxx
یک شنبه 27 اردیبهشت 1388, 20:11 عصر
زماني كه ويرايش ميخواد بشه، قبل از Update كردنِ recordset، بايد مقادير جديد (قيمت واحد و تعداد) را در هم ضرب كنيد و حاصل را در فيلد قيمت كل قرار بديد، بعد update كنيد.
البته بعد از update كردن هم ميشه اين كارو كرد ولي نياز به دوبار وبرايش ركورد داريم.

دوست عزيز اگر نمونه مي خوايد خودتون اون قسمت از برنامه رو تو يك پروژه جديد بزارين و فايلش رو اينجا قرار بديد، تا اصلاح شه. گرچه با توضيحات بالا فكر نكنم ديگه نيازي به سمپل داشته باشيد.

موفق باشيد/

yshahab
یک شنبه 27 اردیبهشت 1388, 20:29 عصر
ممنون دوست من . سعيمو مي كنم ولي اگه وقت داشتين ممنون ميشم سمپل بذارين چون يادگيري از سمپل يه چيز ديگست

yshahab
دوشنبه 28 اردیبهشت 1388, 20:57 عصر
دوست خوبم اون قسمت رو نتونستم جدا كنم هي ارورو مي داد اگه ميشه يه لطف كنين به كدهاش نگاه كنين . دو جا هست كه طول و عرض در كمبوباكس انتخابي ما ضرب مي شه !


Private Sub CmndCalculate_Click()
'// Calculate Value(s)
Call Calculate
End Sub

Private Sub CmndSave_Click()

Dim OleDb As New ClassOleDb
Dim Cmnd As String
Cmnd = "INSERT INTO Piece (Code,Description,Process,Article,Filet,Width,Leng ht,Quantity,Quantity1,Width3,Width4,tolid,t0,t1,t2 ,t3,feeee,feenavar,feemadeh,QU,Tax) Values ('" & _
TxtBoxCode.Text & "','" & _
TxtBoxDescription.Text & "','" & _
TxtBoxProcess.Text & "','" & _
CmboArticle.Text & "','" & _
CmboFilet.Text & "'," & _
TxtBoxWidth.Text & "," & _
TxtBoxLenght.Text & "," & _
TxtBoxQuantity.Text & "," & _
TxtBoxQuantity1.Text & "," & _
TxtBoxWidth3.Text & "," & _
TxtBoxWidth4.Text & "," & _
txt.Text & "," & _
total0.Text & "," & _
total1.Text & "," & _
total2.Text & "," & _
total3.Text & "," & _
TxtBoxTotalFee.Text & "," & _
TxtBoxFiletAmount.Text & "," & _
TxtBoxArticleAmount.Text & "," & _
txtqu.Text & "," & _
TxtBoxTax.Text & ")"

'// Run Query
If OleDb.ExecuteQuery(Cmnd) = True Then
MsgBox "ÚãáíÇÊ ÐÎíÑå ÓÇÒí ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ", vbOKOnly
Unload Me
End If

'//Release Memory
Set OleDb = Nothing

End Sub

Private Sub Form_Load()
'// Load Captions
Call LoadFormCaption(Me)

'// Load ArticlesAndFilets
Call LoadArticlesAndFilets
End Sub

Sub LoadArticlesAndFilets()

Dim OleDb As New ClassOleDb
Dim rs As New Recordset
Dim Cmnd As String
Dim i&, j&



'// Load Available Article(s)

Cmnd = "SELECT * From Article"
Set rs = OleDb.Fill(Cmnd)


If Not (rs.EOF) Then

i = 0
rs.MoveFirst
Do
CmboArticle.AddItem rs.Fields("Type").Value

'// Move to next record
i = i + 1
rs.MoveNext
Loop Until rs.EOF

'// Select 1st Item
CmboArticle.ListIndex = 0

End If



'// Load Available Filet(s)

Cmnd = "SELECT * From Filet"
Set rs = OleDb.Fill(Cmnd)


If Not (rs.EOF) Then

i = 0
rs.MoveFirst
Do
CmboFilet.AddItem rs.Fields("Type").Value

'// Move to next record
i = i + 1
rs.MoveNext
Loop Until rs.EOF

'// Select 1st Item
CmboFilet.ListIndex = 0

End If



'//Release Memory
Set rs = Nothing
Set OleDb = Nothing

End Sub

Sub Calculate()

On Error GoTo ErrHandler

Dim OleDb As New ClassOleDb
Dim rs As New Recordset
Dim Cmnd As String



'// Calculate Value(s)

Dim ArticleAmount, FiletAmount, mb, mn, ms, msh, majmoo As Double
Dim Width, Width3, Width4, Lenght, Quantity, Quantity1, Quantity3, Quantity4, Quantity5, tolid As Long

Width = CLng(TxtBoxWidth.Text)

Width3 = CLng(TxtBoxWidth3.Text)
Width4 = CLng(TxtBoxWidth4.Text)
Lenght = CLng(TxtBoxLenght.Text)
Quantity = CLng(TxtBoxQuantity.Text)
Quantity1 = CLng(TxtBoxQuantity1.Text)
tolid = CLng(txt.Text)

mb = ((Width * 2) + (Lenght * 2)) * 2
mn = (3000 * ((Width * Quantity) + (Lenght * Quantity1))) / 1000
ms = 1500 * Width3
msh = 2000 * Width4
majmoo = ((((Width * 2) + (Lenght * 2)) * 2) + (mn) + (1500 * Width3) + (2000 * Width4))
ArticleAmount = ((Width * Lenght) / 1000000) * (txtqu.Text)
FiletAmount = (((Width * Quantity) + (Lenght * Quantity1)) / 1000) * (txtqu.Text)

TxtBoxArticleAmount.Text = Abs(ArticleAmount)
TxtBoxFiletAmount.Text = Abs(FiletAmount)
total0.Text = Int(mb)
total1.Text = Int(mn)
total2.Text = Int(ms)
total3.Text = Int(msh)
txt.Text = Int(majmoo)








'// Load Selected Article Fee

Dim ArticleFee As Double

Cmnd = "SELECT * From Article WHERE Type='" & CmboArticle.Text & "'"
Set rs = OleDb.Fill(Cmnd)

ArticleFee = rs.Fields(1).Value



'// Load Selected Filet Fee

Dim FiletFee As Double

Cmnd = "SELECT * From Filet WHERE Type='" & CmboFilet.Text & "'"
Set rs = OleDb.Fill(Cmnd)

FiletFee = rs.Fields(1).Value




'// Calculate Total Fee

Dim TotalFee As Double
TotalFee = ((ArticleAmount * ArticleFee) + (mb) + (mn) + (ms) + (msh) + (FiletAmount * FiletFee) + CLng(Val(TxtBoxTax.Text))) * (txtqu.Text)

TxtBoxTotalFee.Text = Abs(TotalFee)



'//Release Memory
Set rs = Nothing
Set OleDb = Nothing

Exit Sub

ErrHandler:
MsgBox "íß íÇ äÏ ÝíáÏ ÇØáÇÚÇÊ ÔãÇ ÇÔÊÈÇå ãí ÈÇÔÏ ÏæÈÇÑå ÓÚí ßäíÏ", vbOKOnly

End Sub



اينجا ركوردامو ذخيره مي كنم اما براي ويرايش نميدونم چكاركنم !

yshahab
دوشنبه 28 اردیبهشت 1388, 22:30 عصر
دوست من بد نيست بگم مشكل اينجاست كه من يج ماده اوليه رو وارد مي كنم بعد اونجا ميگم اين ماده اوليه مثلا متري 1000 تومان و تو فرم ديگه طول و عرضو مي دم و از طريق كمبوباكس يكي از ماده اوليه هارو انتخاب ميكنم و قيمت برحسب اون درمياد .