View Full Version : سوال: یک مشکل در انبارداری
m.4.r.m
پنج شنبه 23 شهریور 1391, 11:15 صبح
سلام دوستان این عکس رو نگاه کنید
وقتی که یک مصالح رو انتخاب می کنم می تونم بر اساس کد مصالح تعداد مصالح رو جایگزین مصالح قبلی بکنم اما وقتی مصالح بیشتر از یک ( 1 ) میشه چه جوری باید تک تک کد مصالح رو پیدا کنم و اختلاف مانده رو جایگزیم مانده بکنم عکس نوشتم چی به چیه ممنون میشم خیلی واجبه اعصابم خورد کرده . مرسی دوستان
محسن واژدی
پنج شنبه 23 شهریور 1391, 13:27 عصر
سلام علیکم
برای اینکار میتوانیم از یک حلقه استفاده کنیم تا به تعداد رکورد هایی که قصد ویرایش آنها داریم تکرار و مقدار جدید را جایگزین مقادیر قبل کند
به عنوان مثال کدی مشابه زیر:
Private Sub Command1_Click()
SQL$ = "SELECT * FROM table_name WHERE code_msaleh='104'"
Adodc1.Recordset.AddNew "tedad_msaleh", 15
Adodc1.Recordset.Update
End Sub
را در یک حلقه ویرایش کرده تا برای بیشتر از یک محصول عمل کند
موفق باشید
m.4.r.m
پنج شنبه 23 شهریور 1391, 13:30 عصر
مهم اون کد 104 هستش که هر کدوم یه کد داره یعنی محصول اولی 104 محصول دومی 105 که همزمان می خوام هم 104 و هم 105 مقدارشون رو تغییر بدم
m.4.r.m
پنج شنبه 23 شهریور 1391, 14:16 عصر
من این طوری می نویسم اما فقط رکورد آخر رو تغییر میده اولی همچنان بدون تغییر می مونه
Dim k%
With MSFlexGrid1
For k = 1 To .Rows - 1
SQL$ = "Select * From Lavazem where LavazemID=" & .TextMatrix(.Rows - 1, 3)
Adodc3.RecordSource = SQL$
Adodc3.Refresh
Adodc3.Recordset.Update "Lcount", .TextMatrix(.Rows - 1, 6)
'Adodc3.Recordset.Update
Next k
End With
.TextMatrix(.Rows - 1, 3) : شماره 3 هم ستون کد مصالح یا همون LavazemID هستش
در ضمن وقتی از AddNew استفاده می کنم چون کلید خالی می مونه خطا میده
vbhamed
پنج شنبه 23 شهریور 1391, 14:40 عصر
سلام
اين رو تست كنيد
Dim k%
sql$ = "Select * From Lavazem"
Adodc3.RecordSource = sql$
Adodc3.Refresh
With MSFlexGrid1
For k = 1 To .Rows - 1
Adodc3.Recordset.Find "LavazemID = " & .TextMatrix(.Rows - 1, 3)
If Adodc3.Recordset.EOF <> True Then
Adodc3.Recordset.Fields("Lcount").Value = .TextMatrix(.Rows - 1, 6)
Adodc3.Recordset.Update
End If
Next
End With
m.4.r.m
پنج شنبه 23 شهریور 1391, 14:52 عصر
رکورد دومی یا همان آخری رو تغییر میده اما رکورد اولی همچنان بدون تغییر میمونه یکی کمک کنه بابا رفته رو اعصابم کد هاشم براتون بزارم :
جدول Lavazem
LavazemID Autonumber
Lname
Lcount
Lprice
جدول فاکتور
FactorID int
MoshtariID int
LavazemID int
Lname varchar(50)
Lcount int // Ekhtelaf Entekhab dar factor ba Mojodi dar nabar
Lprice money
m.4.r.m
پنج شنبه 23 شهریور 1391, 22:17 عصر
هیچ کس هیچ راهکاری نداره واقعا چرا کسی جواب درست و حسابی نمیدن آخه اه
vbhamed
جمعه 24 شهریور 1391, 08:40 صبح
سلام
نمونه كد كه براتون گذاشتيم
اگر مشكلي هست يا تو تنظيمات Sql و يوزرهاست يا تو برنامه شما
بانك و اون تيكه برنامتون رو بزاريد تا بررسي بشه
محسن واژدی
جمعه 24 شهریور 1391, 11:12 صبح
سلام علیکم
تابع زیر هم بررسی کنین:
Public Sub UpdateDBMultiRows(vsFlexGrid As Object, sDB_File$, sTable$, sIDField_Name$, sEditField_Name$, iIDField_ColNumInFG%, iEditField_ColNumInFG%)
On Error Resume Next
Dim Cn, Rs, i%
Set Cn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDB_File$ & ";Persist Security Info=False"
Rs.CursorLocation = adUseClient
Rs.LockType = adLockOptimistic
Rs.Open "SELECT * FROM " & sTable$, Cn
With vsFlexGrid
For i = 1 To .Rows - 1
Rs.Find sIDField_Name$ & "=" & .TextMatrix(i, iIDField_ColNumInFG%)
If Not Rs.EOF Then
Rs.Fields(sEditField_Name$).Value = .TextMatrix(i, iEditField_ColNumInFG%)
Rs.Update
End If
Next 'i
End With
Cn.Close
Set Cn = Nothing
Set Rs = Nothing
End Sub
توضیح پارامترها:
sDB_File: آدرس بانک
sTable: نام جدول
sIDField_Name: فیلد آی دی مثلا LavazemID
sEditField_Name: فیلدی که باید ویرایش ویرایش شود مثلا Lcount
iIDField_ColNumInFG: شماره ستون در vsflexgrid که شماره های فیلد id در آن قرار دارد
iEditField_ColNumInFG: شماره ستون در vsflexgrid که مقادیر جدید در آن قرار دارد
برای مثال اگه بخواهیم کد را طبق تصویر پست 1 بنویسیم میشود:
Private Sub Command1_Click()
Call UpdateDBMultiRows(VSFlexGrid1, "D:\1.mdb", "Lavazem", "LavazemID", "Lcount", 3, 6)
Adodc1.Refresh
End Sub
موفق باشید
m.4.r.m
جمعه 24 شهریور 1391, 21:16 عصر
دستتون درد نکنه مشکلم حل شد واقعا ممنونم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.