PDA

View Full Version : مشکل در افزودن اطلاعات به فايل اکسس



MMR_1344
دوشنبه 04 آذر 1387, 03:42 صبح
با سلام
برنامه من فايل اکسس رو میسازه ولی وقتی میخوام به اون اطلاعات رو اضافه هيچ اطلاعاتی رو به اون اضافه نمیکنه
من قسمت افزودن اطلاعات رو اينجا گذاشتم ممکنه منو راهنمائی کنيد

m_vb1386
دوشنبه 04 آذر 1387, 12:50 عصر
Option Explicit
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
Dim i As Integer
rs.CursorLocation = adUseClient
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Esfand.mdb"
rs.Open "SELECT * from 15110", Cnn, adOpenKeyset, adLockPessimistic, adCmdText
For i = 1 To 30
With rs
.AddNew
If i < 10 Then
rs.Fields("No") = "0" & Trim(Str(i))
Else
rs.Fields("No") = Trim(Str(i))
End If
.Update
End With

Next
Set Me.DataGrid1.DataSource = rs
End Sub

برنامتون رو اينجوري بنويسيد فقط Required مربوط به بقيه فيلد ها رو حواستون باشه كه تو برنامه مقدار دهي كنيد
مشكل برنامتون از adOpenKeyset, adLockPessimistic هست در اخر هم متغير هايي رو كه ايجاد كردين ازاد كنيد

m_vb1386
دوشنبه 04 آذر 1387, 13:15 عصر
رکوردست یک رکوردست ایستا خواهد بود. یعنی تغییرات بر آن اثری ندارد. :adOpenStatic

فكر كنم با اين توضيح متوجه بشين منظورم چي بود

m_vb1386
دوشنبه 04 آذر 1387, 13:16 عصر
Open (Source, ActiveConnection, CursorType, LockType, Options)
ماست (این نام دقیقا نام Connection آرگومان اول نام جدولی است که می خواهیم به آن متصل شویم. آرگومان دوم نام شی
شی ای است که در مرحله قبل تعریف کردیم و با استفاده از آن به بانک متصل شدیم).
مقادیر زیر قابل انتساب است. (CursorType) در مورد آرگومان سوم
رکوردست بصورت یک طرفه بر روی رکوردها حرکت می کند و جلو م یرود. :adOpenForwardOnly
یک رکوردست که کاربران هم می توانند با استفاده از آن جدول را تغییر دهند. توجه کنید که رکوردهای :adOpenKeySet
ساخته شده توسط سایر کاربران قابل دسترسی برای شما نیست.
یک رکوردست مانند گزینه قبلی که کاربران هم می توانند با استفاده از آن جدول را تغییر دهند. توجه :adOpenDynamic
کنید که بر خلاف گزینه قبل رکوردهای ساخته شده توسط سایر کاربران قابل دسترسی برای شما نیز هست.
این رکوردست یک رکوردست ایستا خواهد بود. یعنی تغییرات بر آن اثری ندارد. :adOpenStatic
مقادیر زیر قایل انتساب هستند. (LockType) در مورد آرگومان چهارم
امکان تغییر رکورد وجود ندارد. :adLockReadOnly
رکوردست قفل می شوند. Update رکوردها در هنگام :adLockOptimistic
رکوردها در هنگام آغاز ویرایش قفل می شوند. :adLockPessimistic
روی رکوردست اعمال می شود رکوردها قفل می شوند. UpdateBatch هنگامی که متد :adLockBatchOptimistic
نیز مقادیر زیر قابل انتساب هستند. (Options) برای آرگومان آخر
SQL متن دستور مورد نظر می باشد. بطور مثال یک دستور Source مقدار آرگومان :adCmdText
نام جدولی است که تمامی فلیدهای آن برگردانده خواهند شد. Source مقدار آرگومان :adCmdTable

اين هم توضيح كامل تر البته خودم از عمد تو چند تا تايپيك توضيح دادم كه واضحتر متوجه بشين

MMR_1344
سه شنبه 05 آذر 1387, 03:06 صبح
با تشکر از شما دوست عزیز

MMR_1344
سه شنبه 05 آذر 1387, 04:00 صبح
دوست عزیز از روش شما استفاده کردم اما مشکل زير بوجود اومد فايل رو ضميمه کردم

m_vb1386
سه شنبه 05 آذر 1387, 07:39 صبح
خوب من كه گفتم. شمابايد يا مقادير بقيه فيلد ها رو مشخص كنيد و يا تو بانك اكسس تيبلها رو ديزاين كنيد و مقدار گزينه Required رو به no تغيير بدين اين عكس كه گذاشتم كمكتون ميكنه

MMR_1344
پنج شنبه 07 آذر 1387, 03:16 صبح
با تشکر از محبت شما
ولی من فايل رو در اکسس ايجاد نمیکنم بلکه اون رو در برنامه ام میسازم اگر بخوام در برنامه تعداد رديفها رو افزايش بدم از چه روشی باید استفاده کنم
سوال ديگه اينه که اگر من به فرض سی رديف رو در فايل اکسس اضافه کنم چگونه میتونم در رديف خاصی مقدار برای اون بگذارم يعنی در روز خاصی ساعت ورود و ساعت خروج رو به اون بدم
با تشکر از محبت شما

m_vb1386
پنج شنبه 07 آذر 1387, 12:52 عصر
من با اين روش كه ميگين كار نكردم ببخشيد