数据库,高手快来呀,很简单的 问题,50分
http://www.csdn.net/expert/topic/476/476611.shtm
http://www.csdn.net/expert/topic/476/476611.shtm
解决方案 »
- 要分的进来(在线等……)
- 数据录入的问题?该怎样将录入的数据先存入变量,再写入连接的数据库?
- 请教高手,DAO执行SQL
- MSFlexGrid 如何绑定数据源
- 退出程序时关闭我的ActiveX控件所在窗口呢??急!!!!!(在线等!)
- 如何将短文件名转换成长文件名???
- 很简单请告诉我一下谢谢
- ★★做“开始菜单”图标修改器时遇到的难题。★★
- 如何在vb7的listview或listbox控件中绑定数据源
- Access库里有一个表"zong",怎么复制这个表,再把它的名字改为“aaa"?
- 300分,问一个关于数据库操作的问题,快点来拿分啊!!!!!快
- 能否在动态生成的记录集的基础上,多次进行查询?(在线等待)
-------------------------------------
你不要我问,我偏要问,不懂就问,怎么样啊????????-------------------------------------现在是分析a.mdb与b.mdb ,然后再导入,更新,有什么好建议
Option Explicit
Option Compare Text'================================================================
'功能﹕返回SQL語句
'參數﹕strTableName 你要進行操作的資料表
' bolUpdate 是否需要進行Update﹐因為不知道你是要將所有取出的
' 的數據加上一個字符串還是將這個加上的字符串UPDATE
' 到數據庫﹐所以參數讓你選擇
' strAdd 要加上去的字符串
'返回﹕得到SELECT或UPDATE的SQL字符串
'================================================================
Function getBuildSql(strTableName As String, strAdd As String, bolUpdate As Boolean) As String
Dim objCN As New ADODB.Connection
Dim objRst As New ADODB.Recordset
Dim strCn As String
Dim strRtSql As String
Dim iCount As Integer
Dim i As Integer
strCn = "provider=msdasql.1;server=youServer;database=youDatabasse;uid=sa;pwd=;"
objCN.CursorLocation = adUseClient
objCN.Open strCn
objRst.CursorLocation = adUseClient
'打開一個只讀向前型的RecordSet 只用于讀取數據類型
objRst.Open "SELECT * FROM " + strTableName + " WHERE 1=2", objCN, adOpenForwardOnly, adLockBatchOptimistic
iCount = objRst.Fields.Count
If bolUpdate Then
With objRst
For i = 0 To iCount - 1
If IsStringType(.Fields(i).Type) Then
strRtSql = strRtSql & .Fields(i).Name & "+" & strAdd & ","
Else
strRtSql = strRtSql & .Fields(i).Name & ","
End If
Next
If Right(strRtSql, 1) = "," Then
strRtSql = Left(strRtSql, Len(strRtSql) - 1)
End If
strRtSql = "SELECT " & strRtSql & " FROM " & strTableName
End With
Else
With objRst
For i = 0 To iCount - 1
If IsStringType(.Fields(i).Type) Then
strRtSql = strRtSql & .Fields(i).Name & "=" & .Fields(i).Name & "+'" & strAdd & "'"
End If
Next
If Right(strRtSql, 1) = "," Then
strRtSql = Left(strRtSql, Len(strRtSql) - 1)
End If
strRtSql = "Update " & strTableName & " Set " & strRtSql
End With
End If
objRst.Close
Set objRst = Nothing
End Function
'===========================================================================
'功能﹕得到Adodb.Field 對象的字段類型
'參數﹕intFieldType 字段類型
'返回﹕返回轉換后的字段類型(Integer)
'===========================================================================
'Public Function GetFieldType(intFieldType As Integer) As Integer
' Select Case intFieldType
' Case 3, 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 139
' GetFieldType = fieldTypeNumeric
' Case 11, 6, 1
' GetFieldType = fieldTypeBoolean
' Case 8, 129, 201, 203, 200, 202, 130
' GetFieldType = fieldTypeString
' Case 7, 133, 134, 135, 64
' GetFieldType = fieldTypeDateTime
' Case Else
' GetFieldType = fieldTypeOther
' End Select
'End Function
'===========================================================================
'功能﹕檢查Adodb.Field 的字符串類型是否是字符串
'參數﹕intFieldType 字段類型
'返回﹕true 表示是﹐false 表示不是
'===========================================================================
Public Function IsStringType(intFieldType As Integer) As Boolean
Select Case intFieldType
Case 8, 129, 201, 203, 200, 202, 130
IsStringType = True
Case Else
IsStringType = False
End Select
End Function