نقل قول: ساختار رکورد سورس در vb
سلام
یک پیشنهاد دارم تا درصد خطای شما در بخش sql به حداقل برسه
کوئری خودتون رو در محیط طراحی کوئری ایجاد کنید، بعد در حالت sql کد موجود را در محیط vba یا vb استفاده کنید
نقل قول: ساختار رکورد سورس در vb
نقل قول:
نوشته شده توسط
Mehr@ban
سلام
یک پیشنهاد دارم تا درصد خطای شما در بخش sql به حداقل برسه
کوئری خودتون رو در محیط طراحی کوئری ایجاد کنید، بعد در حالت sql کد موجود را در محیط vba یا vb استفاده کنید
خیلی ممنونم اوکی شد. مرسی
ببخشید یه سوال دیگه هم دارم اگر ممکنه پاسخ بدید
من با دستورات زیر توی محیط اکسس قسمت vb بانک اطلاعاتم باز میکنم و دستور ذخیره میدم. حالا کدی رو که بانک اسکیوال باز میکنه رامیخوام. ممنونم از شما
Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("table1")
rst.AddNew
rst.Fields("tarikh") = Slash((Me.tarikh.Value))
rst.Update
rst.Close
نقل قول: ساختار رکورد سورس در vb
سلام
اين يه نمونه كد با ado هستش اميدوارم به دردتون بخوره:
Dim Cn As ADODB.Connection
Dim rs, rs1 As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Set Cnxn = New ADODB.Connection
strCnxn = "Provider='SQLOLEDB';Data Source='.';" & _
"Initial Catalog='DBName';User ID='sa';Password='DBPass';"
Cnxn.Open strCnxn
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from prescribe", Cnxn, adOpenDynamic, adLockOptimistic, 1
rs.AddNew
.
.
.
rs.Update
نقل قول: ساختار رکورد سورس در vb
نقل قول:
نوشته شده توسط
amirzazadeh
سلام
اين يه نمونه كد با ado هستش اميدوارم به دردتون بخوره:
Dim Cn As ADODB.Connection
Dim rs, rs1 As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Set Cnxn = New ADODB.Connection
strCnxn = "Provider='SQLOLEDB';Data Source='.';" & _
"Initial Catalog='DBName';User ID='sa';Password='DBPass';"
Cnxn.Open strCnxn
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from prescribe", Cnxn, adOpenDynamic, adLockOptimistic, 1
rs.AddNew
.
.
.
rs.Update
سلام، من خیلی دنبال چنین سورسی بودم؛ ممنونم از توجه شما
با توجه به اینکه من مبتدی هستم چند تا سوال دیگه هم دارم اگر امکان داره راهنماییم کنید
1- اگر در یک فرم هم دستور ذخیره در بانک اکسس باشه و هم ذخیره در بانک sql امکان پذیر هست؟
2- اگر بخوام یه فیلد ( که شناسه مشخص داره) را در بانک sql را ویرایش کنم کد فوق چه تغییری میکنه؟
3- اگر تعداد رکورد بیش از یکی باشه و بخوام همه را یکجا در بانک sql ذخیره کنم چکار باید بکنم؟
نقل قول: ساختار رکورد سورس در vb
سلام
در مورد سئوال 1 جواب مثبته ولي برا خودم سئواله كه چرا از دو تا ديتابيس مختلف در برنامه استفاده ميشه؟
2- براي ويرايش به جاي اين كد
rs.Open "select * from prescribe", Cnxn, adOpenDynamic, adLockOptimistic, 1
rs.AddNew
از اين نمونه كد استفاده ميشه كه شما بايد شرط خودتون رو بعد از where جايگزين كنيد.
rs.Open "select * from prescribe where ser=" & prc, Cnxn, adOpenDynamic, adLockOptimistic, 1
براي ذخيره همزمان چند ركورد يا بايد از لوپ (For Next) استفاده بشه يا از كوئري هاي اينسرت كه با اجراي كامندهاي sql عملي هست.
..............................
نقل قول: ساختار رکورد سورس در vb
با یک نرم افزار کار میکنم که تحت قالب sql هست (البته کار من نیست) که یک سری کمبود هایی داره؛ بعضی از موارد را میشه از طریق کد نویسی تو بانک خود برنامه ذخیره یا ویرایش... کرد
حالا من اومدم با اکسس نواقص را رفع کردم و چون بلد نبودم از بانک اکسس استفاده کردم. از شما هم میخوام منو تو این زمینه راهنمایی کنید
البته از توجهات قبلی کمال سپاسگذاری را دارم
1 ضمیمه
نقل قول: ساختار رکورد سورس در vb
سلام
من این کد را گذاشتم ولی ارور میده
امکان داره یه نمونه برام بذارید؟؟
ضمیمه 148757
1 ضمیمه
نقل قول: ساختار رکورد سورس در vb
مشکل قبلی اوکی شد
یه مشکل دیگه اینو چطور حل کنم؟
دیتابیس اسکیوال هم یوزر و پسورد نداره
ضمیمه 148760
یه سوال دیگه
ساختار جایگزین کردن فیلد در بانک چیه؟
آیا من درست نوشتم؟
rs.AddNew
rs.Fields("codea") = Slash((Me.Text1.Value))
rs.Fields("fish_num") = Slash((Me.Text3.Value))
نقل قول: ساختار رکورد سورس در vb
Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;
Integrated Security=SSPI;
اگه بانك اطلاعاتي پسود نداره از اين رشته براي اتصال استفاده كنيد
نقل قول: ساختار رکورد سورس در vb
شرمنده باز هم درست نشد
Dim Cn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Set Cnxn = New ADODB.Connection
strCnxn = "Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase; Integrated Security=SSPI"
Cnxn.Open strCnxn
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "select * from dbo.tbl_gheramat_ozviat", Cnxn, adOpenDynamic, adLockOptimistic, 1
rst.AddNew
rst.Update
نقل قول: ساختار رکورد سورس در vb
سلام.شما بايد در رشته اتصال نام كامپيوتر سرور خودتون رو به جاي "ماي سرور آدرس" جايگزين كنيد و همينطور در قسمت "اينيشيال كاتوگ" نام ديتا بيس خودتون را بنويسيد.
...............
موفق باشيد
1 ضمیمه
نقل قول: ساختار رکورد سورس در vb
به صورت زیر نوشتم اما متاسفنه بازم خطا میده
strCnxn = " Provider = sqloledb;Data Source = '.\ SQLEXPRESS' ; Initial Catalog = 'mainP' ; Integrated Security = SSPI "
من نام سرور را از کجا باید بردارم؟
مثل شکل زیر صحیحه؟
ضمیمه 148768
نقل قول: ساختار رکورد سورس در vb
سلام کد رو درست نوشتید فقط به جای . باید نام کامپیوتر شما وارد بشه که با راست کلیک روی ایکون مای کامپیوتر یا مای پی سی در دسکتاپ نشان داده میشه.
یه چیزی مثل این strCnxn = "Provider='SQLOLEDB';Data Source='am\SQLEXPRESS';" & _
"Initial Catalog='totia';Integrated Security=SSPI;" که am نام کامپیوتر هست
کد HTML:
strCnxn = "Provider='SQLOLEDB';Data Source='am\SQLEXPRESS';" & _
"Initial Catalog='totia';Integrated Security=SSPI;"
......................
موفق باشید
نقل قول: ساختار رکورد سورس در vb
سلام
خیلی تشکر میکنم از زحمات و توجهات شما
نام کامپیوتر را از همون جایی ک فرمودید هم وارد کردم ولی هنوز همون خطا پست شماره 9 را داد_نام سیستم تغییر دادم و اوکی شد
بازم ممنونم از الطاف شما
یه سوال دیگه و اون اینکه اگر بخوام دستوری باشه که به صورت اتوماتیک نام سیستم پیدا کنه و جایگذاری بکنه چکار باید بکنم؟؟؟؟؟؟؟
نقل قول: ساختار رکورد سورس در vb
نقل قول:
نوشته شده توسط
amirzazadeh
سلام
در مورد سئوال 1 جواب مثبته ولي برا خودم سئواله كه چرا از دو تا ديتابيس مختلف در برنامه استفاده ميشه؟
2- براي ويرايش به جاي اين كد
rs.Open "select * from prescribe", Cnxn, adOpenDynamic, adLockOptimistic, 1
rs.AddNew
از اين نمونه كد استفاده ميشه كه شما بايد شرط خودتون رو بعد از where جايگزين كنيد.
rs.Open "select * from prescribe where ser=" & prc, Cnxn, adOpenDynamic, adLockOptimistic, 1
براي ذخيره همزمان چند ركورد يا بايد از لوپ (For Next) استفاده بشه يا از كوئري هاي اينسرت كه با اجراي كامندهاي sql عملي هست.
..............................
سلام
جهت ویرایش از دستوری که دادید استفاده کردم ولی خطا object required داد.
در خود sql وقتی میخوام ویرایش بزنم از دستور update استفاده میکنم ایا اینجا هم باید از اون دستور استفاده بکنم؟؟ اگه جواب مثبت هست ساختار و شیوه اون به چه نحوی هست؟
ساختار دستور حذف چطور هست؟
ممنونم از شما که وقت میذارید
نقل قول: ساختار رکورد سورس در vb
ساختار دستور حذف چطور هست؟
Set rs1 = New ADODB.Recordset
rs1.Open "select * from subpsc where scser=" & prc, Cn, adOpenDynamic, adLockOptimistic, 1
sql = "delete from subpsc where scser=" & prc
DoCmd.RunSQL (sql)
نقل قول: ساختار رکورد سورس در vb
ممنونم از پاسختون
لطف میکنید برای دو سوال دیگه هم منو راهنمایی کنید
نقل قول: ساختار رکورد سورس در vb
نقل قول:
نوشته شده توسط
reza2371
ممنونم از پاسختون
لطف میکنید برای دو سوال دیگه هم منو راهنمایی کنید
يك نمونه كد با لوپ براي ويرايش:
Set rs1 = New ADODB.Recordset
rs1.Open "select * from subpsc where scser=" & prc, Cn, adOpenDynamic, adLockOptimistic, 1
For intcurrentrow = 0 To Me.List6.ListCount - 1
rs1!scser = prc
rs1!Dcode = Me.List6.Column(9, intcurrentrow)
rs1!price = Me.List6.Column(5, intcurrentrow)
.
.
.
rs1.Update
Next intcurrentrow
MsgBox "داده ويرايش شد" & " " & CInt(Right(rs!ser, 4)), vbApplicationModal, "ويرايش"
Set rs = Nothing
Set rs1 = Nothin
نقل قول: ساختار رکورد سورس در vb
سلام
بابت زحمت هایی ک دادم تشکر ویژه میکنم از شما
من خیلی وارد نیستم . نتونستم کد ویرایش و حذف را درست بزنم و اجرا بشه
prc مقداری هست ک برای شرط درنظر میگیرید؟؟
شرط را چطور در ساختار قرار میدید؟؟
اسم تیبل من dbo.tbl_gheramat_ozviat هست. فیلد شرط هم codea هست
ممنونم از الطاف شما
نقل قول: ساختار رکورد سورس در vb
كد شما براي حذف بايد يه چيزي شبيه به اين باشه:
Set rs1 = New ADODB.Recordset
rs1.Open "select * from dbo.tbl_gheramat_ozviat where codea=" & مقدار, Cn, adOpenDynamic, adLockOptimistic, 1
sql = "delete from dbo.tbl_gheramat_ozviat where codea=" & مقدار
DoCmd.RunSQL (sql)
نقل قول: ساختار رکورد سورس در vb
نحوه نوشتن شرط با " هست؟ میشه توضیح بدید؟
شرمنده من مبتدی هستم
نقل قول: ساختار رکورد سورس در vb
سلام.
نکته اول اینه که راه ساده تری برای ارتباط با SQL وجود داره و اون استفاده از ODBC هست. از طریق اون می تونین جداول یا View های SQL رو وارد برنامه ACCESS خودتون بکنین و همانند جداول خود ACCESS با اونها رفتار کنین.
موضوع دوم در خصوص دستورات T-SQL هست. دستوراتی که شما مقابل =sql می نویسین یک Text است و از نوع String. بدیهی است که لازمه این دستورات درون دو عدد (") به شکل "Statement" قرار بگیرن. حالا اگه بخواهید داخل یک String از یک متغیر استفاده کنین که براساس شرایط بهش مقدار بدین و داخل دستور SQL اون مقدار قرار بگییره، لازمه از یک ساختار استفاده کنین که شبیه دستوراتی است که قبلا برای شما توضیح داده شده:
"SELECT * FROM " & Var1 & " WHERE TableName = '" & Var2 & "' Order By ID"
در دستور بالا متغیر اول با نام Var1 از نوع عددی است پس برای قرار دادن آن داخل یک دستور T-SQL لازم است ابتدا کد مان را به سه قسمت تقسیم کنیم، دو قسمت اول و سوم همچنان Text هستند و لازم است در کدام داخل دو عدد (") قرار بگیرند و قسمت میانی که یک متغیر است به همان صورت نوشته می شود. حال برای اینکه این سه قسمت را به هم متصل کنیم، لازم است از دو علامت & استفاده کنیم.
در متغیر دوم (Var2) یک تفاوت وجود دارد و این است که نوع این متغیر از نوع String است و در نتیجه مقدار آن در دستورات T-SQL لازم است بین دو علامت (') قرار گیرد. به همین دلیل به انتهای رشته قبل از متغیر یک علامت (') و به ابتدای رشته بعد از متغیر نیز یک علامت (') اضافه می کنیم.
شایان ذکر است در دستور بالا مقدار Var1 برابر نام جدولی است که می خواهیم دستور را روی آن اجرا کنیم و متغیر Var2 مربوط به شرطی است که می خواهیم روی دستور ما اعمال شود.
نقل قول: ساختار رکورد سورس در vb
سلام مجدد.
من برای بررسی و تغییر روی جداول در محیط VBA از ساختار زیر استفاده می کنم. ممکنه به درد دوستان هم بخوره:
Dim DBS As Database
Dim RES1 As Recordset
Set DBS = CurrentDb
"Set RES1 = DBS.OpenRecordset("TableName)
With RES1
.MoveFirst
Do While Not .EOF
.Edit
دستورات
.Update
.MoveNext
Loop
End With
RES1.Close
به جای TableName لازمه نام جدول و یا Query مورد نیاز خودتون رو بنویسین و از دستورات Edit. و Update. زمانی استفاده می کنین که می خواهید ویرایشی روی جدول مربوطه انجام دهید. در صورتیکه بخواهید یک رکورد جدید رو به جدول اضافه کنین هم می تونین به جای Edit. از AddNew. استفاده کنین.