View Full Version : چک کردن وجود یه جدول در دیتابیس
niko2008
پنج شنبه 17 تیر 1395, 15:26 عصر
سلام خدمت اساتید محترم
میخوام بدونم یه روش خاصی برای این که بفهمیم یه Table در دیتابیس هست یا نه ، وجود داره میشه کمک کنید
محسن واژدی
جمعه 18 تیر 1395, 05:49 صبح
سلام
تابع زیر را در ماژول قرار بدید:
Public Function CheckExistTable(ByVal oADO As Adodc, ByVal vCurTblName As String) As Boolean
On Error Resume Next
Dim oADOXConn As Object
Dim oADODBConn As Object
Dim vCurTbl As Variant
Err.Clear
Set oADOXConn = CreateObject("ADOX.Catalog")
Set oADODBConn = CreateObject("ADODB.Connection")
oADODBConn.Open oADO.ConnectionString
oADOXConn.ActiveConnection = oADODBConn
If Err.Number <> 0 Then MsgBox Err.Description, vbCritical: Exit Function
For Each vCurTbl In oADOXConn.Tables
If LCase(Trim(vCurTbl.Name)) = LCase(Trim(vCurTblName)) Then
CheckExistTable = True
Exit For
End If
Next
oADODBConn.Close
End Function
برای مثال:
Private Sub Command1_Click()
MsgBox "Exists result: " & CheckExistTable(Adodc1, "Authors")
End Sub
موفق باشید
niko2008
جمعه 18 تیر 1395, 11:01 صبح
سلام محسن جان خیلی عالی بود
حالا میشه در کد زیر تست کنیم ببینیم اگه مثلا table x موجوده فیلدهاشو پر کنیم و اگه table x نباشه اول اونو ایجاد کنه بعد پرش کنه
'Creating a table
If Check1.Value = 1 Then
On Error Resume Next
Set db = OpenDatabase(App.Path & "\NIKODB.MDB")
Set tds = db.TableDefs
'ado.Execute "CREATE TABLE " & iTable & "([DateTime] TEXT(25), [NE NAME] TEXT(25))"
ado.Execute "CREATE TABLE " & iTable & "([DateTime] TEXT(25), [NE_NAME] TEXT(25))"
On Error GoTo 0
For i = 1 To paramCounter
ado.Execute "ALTER TABLE " &iTable & " ADD COLUMN [" & iParam(i) & "] TEXT(255);"
Next i
'************************************************* *********************************************
' Display names of all tables in database:
For j = 0 To tds.Count - 1
lstTables.AddItem tds(j).Name
Next
'************************************************* *********************************************
'RichTextBox1.SelText = iTable & vbTab & " (" & paramStr & ") VALUES (" & valueStr & ")" & vbCrLf
'ado.Execute "INSERT INTO " & Q & " (" & paramStr & ") VALUES (" & valueStr & ");"
End If
محسن واژدی
جمعه 18 تیر 1395, 15:01 عصر
سلام محسن جان خیلی عالی بود
حالا میشه در کد زیر تست کنیم ببینیم اگه مثلا table x موجوده فیلدهاشو پر کنیم و اگه table x نباشه اول اونو ایجاد کنه بعد پرش کنه
'Creating a table
If Check1.Value = 1 Then
On Error Resume Next
Set db = OpenDatabase(App.Path & "\NIKODB.MDB")
Set tds = db.TableDefs
'ado.Execute "CREATE TABLE " & iTable & "([DateTime] TEXT(25), [NE NAME] TEXT(25))"
ado.Execute "CREATE TABLE " & iTable & "([DateTime] TEXT(25), [NE_NAME] TEXT(25))"
On Error GoTo 0
For i = 1 To paramCounter
ado.Execute "ALTER TABLE " &iTable & " ADD COLUMN [" & iParam(i) & "] TEXT(255);"
Next i
'************************************************* *********************************************
' Display names of all tables in database:
For j = 0 To tds.Count - 1
lstTables.AddItem tds(j).Name
Next
'************************************************* *********************************************
'RichTextBox1.SelText = iTable & vbTab & " (" & paramStr & ") VALUES (" & valueStr & ")" & vbCrLf
'ado.Execute "INSERT INTO " & Q & " (" & paramStr & ") VALUES (" & valueStr & ");"
End If
سلام
برای این سوال جدید تاپیک جداگانه باز کنید
niko2008
جمعه 18 تیر 1395, 15:26 عصر
حالا تو این تاپیک نمیشه جواب بدین
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.