PDA

View Full Version : خطا در جستجو



vali82
چهارشنبه 29 اردیبهشت 1389, 11:44 صبح
با سلام
من می خوام از ورود اطلاعات تکراری جلوگیری کنم در قسمت عمومی کد زیرو نوشتم

Public Sub SerchIp(ByVal VIp As Long)
Set Cmd = New ADODB.Command
Set Rst = New ADODB.Recordset

Connect

SQLQuery = "Select * From tblkar where ip='" & VIp & "'"

Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdText
Cmd.CommandText = SQLQuery

Rst.CursorType = adOpenKeyset
Rst.CursorLocation = adUseClient
Set Rst = Cmd.Execute
Set sip = Rst

End Sub

بعد کد با کد زیر فراخوانیش کردم

Call SerchIp(MIp)
If sip = MIp Then
frmErorr.lblTxt.Caption = " ! ÔãÇÑå ˜ÇÑÈÑí ÔãÇ Ê˜ÑÇÑí ãí ÈÇÔÏ"
frmErorr.Show
Else
Call Insert(MIp, MUName, MUser, MSemat, MPass, MManeg, MTArikh, MTaid, MGozar, MNomrat)
Call LoadtblKar
RefreshForm
End If
اما جواب نمی ده

samkoper
جمعه 31 اردیبهشت 1389, 13:35 عصر
شما ميتوانيد در قسمت دوم از اين كد استفاده نماييد انشا اله مشكلتان حل شود.



If sip.Recordset.RecordCount = 0 Then
frmErorr.lblTxt.Caption = " ! O^a~C,N~a* ~C,N~E`N~i' O^a~C, E^~N~C,N~i' a~i' E`C,O^I"""
frmErorr.Show
Else
Call Insert(MIp, MUName, MUser, MSemat, MPass, MManeg, MTArikh, MTaid, MGozar, MNomrat)
Call LoadtblKar
RefreshForm
End If

vali82
شنبه 01 خرداد 1389, 16:01 عصر
با سلام و تشکر
این کارو کردم ولی Erorr زیرو داد

samkoper
دوشنبه 03 خرداد 1389, 12:29 عصر
سلام

شما بايد از adodc خود يك RecordCount بگيريد با استفاده از دستور sql، مثل همان دستور select كه در نمونه كد اول موجود است. و شرط را بر اساس RecordCount قرار دهيد كه اگر RecordCount برابر با صفر شد چكار كند در غير اينصورت ( يعني اگر RecordCount نابرابر با صفر شد كه همان ركورد تكراري حساب مي‌شود) else برقرار گردد.
در حالت استاندار مثل كد زير مي‌باشد شما تغييراتي در نام شي‌ها قرار داده‌ايد:



Adodc1.RecordSource = "Select * From tblkar where ip='" & VIp & "'"
If Adodc1.Recordset.RecordCount = 0 Then
Else

End If

نكته : نكته مهم اينكه شما در اين دستور مقدار vip را از نوع String در نظر گرفته ايد كه بايد فيلد Ip نيز نيز از نوع String باشد.

vali82
دوشنبه 03 خرداد 1389, 17:04 عصر
با سلام
دوست عزیز من این کارو کردم اما خطای زیر رو می گیره در ضمن بصورت زیر عمل کردم

Public Sub SerchIp(ByVal VIp As Long)
Dim Res As Adodc

Connect

Res.RecordSource = "Select * From tblkar where ip='" & VIp & "'"

End Sub

samkoper
یک شنبه 09 خرداد 1389, 16:47 عصر
سلام دوست من؛

اگه فرمي رو كه توش خطا داري برام بفرستي برات خطاش رو برطرف مي‌كنم، ايجوري بيشتر مي‌تونم بهت كمك كنم.
موفق باشيد

vali82
دوشنبه 10 خرداد 1389, 07:15 صبح
سلام با تشکر فایل پیوست کل پروژست

samkoper
دوشنبه 10 خرداد 1389, 19:14 عصر
دوست من سلام

يه سري تغييرات توي فرم مديريت كاربران دادم (دكمه ذخيره). البته با كد نويسي شما متفاوته. من با اين روش شما زياد حال نمي كنم به روش خودم كد رو نوشتم. كد دكمه ذخيره در فرم مديريت كاربران را داخل پروژه خود در همان فرم و همان دكمه كپي كن. توي اين پروژه هم امكانات زيادي را لود كردي كه مورد استفاده شما براي اين پروژه نيست اين كار حجم برنامه را افزايش و سرعت آن را كمي كاهش مي دهد.


انشا اله موفق باشي.

vali82
سه شنبه 11 خرداد 1389, 07:41 صبح
سلام
دوست عزیز من می خوام این برنامه توی شبکه کار کنه با این کار فکر کنم یک خورده مشکل ایجاد میشه !!!!

samkoper
سه شنبه 11 خرداد 1389, 09:37 صبح
با سلام؛
در كد نويسي آدرس فولدر ديتابيس رو دادي چطور ميخواي روي شبكه كار كنه؟

App.Path + "\data\DataPish.mdb"

كدي كه من براتون نوشتم همون كاري رو انجام ميده كه قبلا خودت انجام داده بودي فقط نوع نوشتن كد فرق مي كنه.
اگر ميخواي ديتابيس روي شبكه باشه از DSN استفاده كن.

vali82
سه شنبه 11 خرداد 1389, 11:21 صبح
سلام چطوری از DNS استفاده کنم

samkoper
سه شنبه 11 خرداد 1389, 15:01 عصر
با سلام؛

دوست عزيز زياد وقت نداشتم يه راهنماي سريع برات درست كردم انشا اله كه نحوه ساخت و استفاده رو ياد بگيري.
استفاده از DSN مزيتهاي زيادي داره كه يكي از مهمترين آنها اينه كه بانك رو ميشه هرجا كه دوست داري بزاري و آدرس آن رو در قسمت DSN تغيير دهي.
اگر ابهامي بود در خدمتيم.