新聞中心
隨著數(shù)據(jù)處理和存儲的不斷增加,數(shù)據(jù)庫查詢也變得越來越復(fù)雜。數(shù)據(jù)庫查詢的效率和精確性是每個數(shù)據(jù)管理者所關(guān)心的問題。在多表連接的情況下,雖然SQL語言在處理數(shù)據(jù)方面非常強大,但在實際操作中需要使用像VBA一樣編程語言進(jìn)行操作。因此,本文將介紹如何使用VBA和SQL語言多表連接查詢數(shù)據(jù)庫。

1. SQL語言多表連接
在SQL中,多表連接是一種在不同表中進(jìn)行關(guān)聯(lián)操作的方法。將多個表連接起來后,可以通過查詢語句實現(xiàn)更全面以及更準(zhǔn)確的數(shù)據(jù)處理。SQL語句中多表連接的基本方法是使用JOIN語句,一般常用的JOIN類型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN等。
INNER JOIN即內(nèi)連接,該方法利用比較運算符關(guān)聯(lián)兩個表中的數(shù)據(jù),只返回兩個表中都滿足條件的行。例如,下面的SQL語句實現(xiàn)了兩個表的內(nèi)連接:
SELECT t1.col1, t2.col2 FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.t1_id
LEFT JOIN即左外連接,該方法將左邊的表中的所有行進(jìn)行匹配,并返回符合條件的數(shù)據(jù)以及左表中未匹配的行。如果右表中對應(yīng)的數(shù)據(jù)不存在,則使用NULL值填充。例如,下面的SQL語句實現(xiàn)了兩個表的左外連接:
SELECT t1.col1, t2.col2 FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.t1_id
RIGHT JOIN即右外連接,該方法和左外連接相似,只是返回右邊表中的所有行。例如,下面的SQL語句實現(xiàn)了兩個表的右外連接:
SELECT t1.col1, t2.col2 FROM table1 t1 RIGHT JOIN table2 t2 ON t1.id = t2.t1_id
FULL OUTER JOIN即全外連接,該方法返回兩個表中的所有行,并將未匹配的行用NULL值進(jìn)行填充。例如,下面的SQL語句實現(xiàn)了兩個表的全外連接:
SELECT t1.col1, t2.col2 FROM table1 t1 FULL OUTER JOIN table2 t2 ON t1.id = t2.t1_id
以上是SQL語言多表連接的基本知識點,但是對于數(shù)據(jù)處理的復(fù)雜業(yè)務(wù)來說,需要使用到VBA編程語言。
2. VBA與SQL多表連接
VBA是Microsoft Excel表格軟件的編程語言,它可以幫助Excel用戶協(xié)助完成重復(fù)且繁瑣的任務(wù)。除了Excel的操作,VBA還可以處理其他數(shù)據(jù)和程序,例如多表連接的SQL語句。
需要在Excel中啟動編輯器,將SQL語句輸入到模塊中。常見的方法是在VBA編輯器中創(chuàng)建查詢函數(shù),并使用ADO對象庫連接數(shù)據(jù)庫。以下是一個簡單的例子:
Private Sub TestFunction() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL As String Set cnn = New ADODB.Connection: cnn.ConnectionString = “Provider=MSDAORA;Data Source=DBName;User ID=UserName;Password=password;” cnn.Open strSQL = “SELECT Products.ProductName, Categories.CategoryName FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;” Set rs = New ADODB.Recordset rs.Open strSQL, cnn Range(“A1”).CopyFromRecordset rs Set rs = Nothing Set cnn = Nothing End Sub
以上VBA代碼使用了ADODB對象庫連接數(shù)據(jù)庫,并利用INNER JOIN語句連接了兩個表:Products和Categories。查詢結(jié)果存儲在Recordset對象中,并將結(jié)果復(fù)制到Excel的單元格中。
隨著數(shù)據(jù)的增長和更新,在數(shù)據(jù)處理方面使用多表連接查詢數(shù)據(jù)庫是非常常見的。本文介紹了基本的SQL多表連接知識點和利用VBA編程實現(xiàn)多表連接查詢的方法。仔細(xì)學(xué)習(xí)這些信息并實踐,將有助于提高您在數(shù)據(jù)處理和管理中的技能水平。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220EXCEL VBA怎么讀寫SQLSERVER 數(shù)據(jù)庫
這是EXCEL與SQL結(jié)合的一般性的運用,我先給出一些示范代碼,自己修改一下。
其實這樣的例子網(wǎng)上也很多的。
1.先加入對ADODB的引用
2.定義數(shù)羨升耐據(jù)庫連接的全局變量
dim cnDB as adodb.connection
3.函數(shù)
‘2023/4/1
‘打開與系統(tǒng)數(shù)據(jù)庫的連接,返回數(shù)據(jù)庫是否兄春打開
Public Function OpenDatabase() As Boolean
Dim B As Boolean
B = True
With cnDB
If .State adStateOpen Then ‘如果數(shù)據(jù)庫連接未笑晌打開
On Error Resume Next
.Close ‘先關(guān)閉數(shù)據(jù)庫連接,忽略任何錯誤
‘2023/3/15變更服務(wù)器,73.1 -> 84.36(hzrpps)
S = “driver={sql server};server=服務(wù)器IP;uid=SQL用戶名;”
S = S & “pwd=用戶密碼;database=數(shù)據(jù)庫名;”
.ConnectionString = S
Err.Clear
.Open
If Err.Number 0 Then
B = False
MsgBox “連接數(shù)據(jù)庫時發(fā)生錯誤,請聯(lián)絡(luò)?!? vbInformation
End If
End If
End With
OpenDatabase = B
End Function
‘根據(jù)指定的sql語句,取得記錄列表
Public Function GetRecordList(ByVal sSql As String) As String
Dim tmpRs As New ADODB.Recordset
On Error GoTo Err1
S = “”
If Len(sSql) > 0 Then ‘sql語句不是0長度
If OpenDatabase Then ‘打開數(shù)據(jù)庫成功
With tmpRs
.Open sSql, cnDB, adOpenKeyset, adLockOptimistic
If Not (.BOF And .EOF) Then ‘有記錄存在
If .RecordCount = 1 Then ‘如果僅有一條記錄,同不要”,”分隔號
S = .Fields(0).Value ‘僅取之一個字段
Else
‘For i = 1 To .RecordCount
‘S = S & .Fields(0).Value & “,” ‘用逗號分隔
‘.MoveNext
‘Next
Do While Not .EOF
S = S & .Fields(0).Value & “,” ‘用逗號分隔
.MoveNext
Loop
S = Left(S, Len(S) – 1)
End If
End If
.Close
End With
End If
End If
GetRecordList = S ‘返回值
Exit Function
Err1:
MsgBox “系統(tǒng)取得數(shù)據(jù)時發(fā)生錯誤,請聯(lián)絡(luò)?!? vbExclamation
End Function
Sub 按鈕1_Click()
Dim i As Integer, j As Integer, sht As Worksheet ‘i,j為整數(shù)變量;sht 為excel工作表對象變量,指向某一工作表
‘Dim cn As New ADODB.Connection ‘定義數(shù)據(jù)鏈接對象 ,保存連接數(shù)據(jù)庫信息;請先添加ADO引用
‘Dim rs As New ADODB.Recordset ‘定義記錄集對象,保存數(shù)據(jù)表
‘工具 —〉引用 —〉Microsoft ActiveX data objects ….
‘下面兩句就不需要增加引用ADO
Set cn = CreateObject(“Adodb.Connection”)
Set rs = CreateObject(“Adodb.Recordset”)
Dim strCn As String, strSQL As String ‘字符串變量
Dim strCond As String
strCn = “Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password” ‘定義數(shù)據(jù)庫鏈接字符串
‘下面的語句將讀取態(tài)衫數(shù)據(jù)表數(shù)據(jù),并將它保存到excel工作表中:工作表為一張兩維表,記錄集也是一張兩維表
strSQL = “select CUSTOMER_NAME from VSC_BI_CUSTOMER ” ‘定義SQL查詢命令字符串
cn.Open strCn ‘與數(shù)據(jù)庫建立連接,如果成功,返回連接對碰肢象cn
rs.Open strSQL, cn ‘執(zhí)行strSQL所含的SQL命令,結(jié)果保存在rs記錄集對象中
i = 2
Set sht = ThisWorkbook.Worksheets(“Test”) ‘把sht指向當(dāng)前工作簿的Test工作表
Do While Not rs.EOF ‘當(dāng)數(shù)據(jù)指針未移到記錄集末尾時,循環(huán)下列操作
sht.Cells(i, 1) = rs(“CUSTOMER_NAME”) ‘把當(dāng)前記錄的字段1的值保存到sheet1工作表的第i行第1列
rs.MoveNext ‘把指針移向下一條記錄
i = i + 1 ‘i加1,準(zhǔn)備把下一記錄相關(guān)字段的值保存到工作表的下一行
Loop ‘循環(huán)
rs.Close ‘關(guān)閉記錄集,笑閉世至此,程序?qū)涯硵?shù)據(jù)表的字段1保存在excel工作表sheet1的第1列,行數(shù)等于數(shù)據(jù)表的記錄數(shù)
cn.Close ‘關(guān)閉數(shù)據(jù)庫鏈接,釋放資源
End Sub
Dim cn As New ADODB.Connection ‘定旅瞎義數(shù)據(jù)鏈接對象 ,保存連接數(shù)據(jù)庫信息;請先添加ADO引用
Dim rs As New ADODB.Recordset ‘定義記森鎮(zhèn)如錄集對此啟象,保存數(shù)據(jù)表
Dim strCn As String, strSQL As String ‘字符串變量
Dim i As Integer, j As Integer, sht As Worksheet
strCn = “Provider=SQLOLEDB.1;Password=密碼;Persist Security Info=True;User ID=用戶;Initial Catalog=hrlink ;Data Source=IP地址”
strSQL = “select * from 表”
strSQL1 = “select * from 表”
cn.Open strCn
rs.Open strSQL, cn
Function qushuju ()
‘定義變量
Dim i As Double
Dim j As Double
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim temp_1 As String
Dim temp_2 As String
Dim temp_3 As String
Dim temp_4 As String
Dim temp_5 As Single
Dim temp_6 As Single
Dim temp_7 As Single
Dim temp_8 As Single
Dim temp_9 As Single
Dim temp_10 As Single
Dim temp_11 As Single
Dim temp_12 As Single
Dim temp_13 As Single
Dim temp_14 As Single
Dim temp_15 As Single
Dim temp_16 As Single
Dim temp_17 As Single
Dim temp_18 As Single
Dim temp_19 As Single
Dim temp_20 As Single
Dim temp_21 As Single
Dim temp_22 As Single
Dim temp_23 As Single
Dim temp_24 As Single
Dim temp_25 As Single
Dim x()
x = Array(temp_1, temp_2, temp_3, temp_4, temp_5, temp_6, temp_7, temp_8, temp_9, temp_10, temp_11, temp_12, temp_13, temp_14, temp_15, temp_16, temp_17, temp_18, temp19, temp20, temp21, temp22, temp23, temp24, temp25)
‘初始化變量
i = 1
j = 2
‘初始化表格
ActiveWorkbook.Sheets(2).Select
ActiveWorkbook.Sheets(2).Cells.Select
Selection.ClearContents
‘制表頭
Sheets(2).Cells(1, 1) = “DATE”
Sheets(2).Cells(1, 2) = “Period”
Sheets(2).Cells(1, 3) = “Exchid”
Sheets(2).Cells(1, 4) = “cellid”
Sheets(2).Cells(1, 5) = “小區(qū)名稱”
Sheets(2).Cells(1, 6) = “鎮(zhèn)區(qū)”
Sheets(2).Cells(1, 7) = “頻率”
Sheets(2).Cells(1, 8) = “纖指設(shè)備類型”
Sheets(2).Cells(1, 9) = “設(shè)備代維公司”
Sheets(2).Cells(1, 10) = “TRU_MO”
Sheets(2).Cells(1, 11) = “TRU_STS”
Sheets(2).Cells(1, 12) = “T完好率”
Sheets(2).Cells(1, 13) = “定義信道”
Sheets(2).Cells(1, 14) = “可用信道”
Sheets(2).Cells(1, 15) = “話務(wù)量”
Sheets(2).Cells(1, 16) = “F話務(wù)量”
Sheets(2).Cells(1, 17) = “H話務(wù)量”
Sheets(2).Cells(1, 18) = “平均分配PDCH”
Sheets(2).Cells(1, 19) = “混合話務(wù)量”
Sheets(2).Cells(1, 20) = “STRU數(shù)”
Sheets(2).Cells(1, 21) = “配橋坦置EPDCH數(shù)”
Sheets(2).Cells(1, 22) = “EPDCH分配數(shù)”
Sheets(2).Cells(1, 23) = “EPDCH復(fù)用敏豎桐度”
Sheets(2).Cells(1, 24) = “統(tǒng)計時段數(shù)”
Sheets(2).Cells(1, 25) = “平均混合話務(wù)量”
‘連接SQL數(shù)據(jù)庫
Dim conn As New ADODB.Connection
connStr = “Driver={SQL Server};DataBase=optimize;Server=10.249.5.49;UID=abc;PWD=abc”
conn.Open connStr ‘連接數(shù)據(jù)庫
Dim rs As New Recordset
‘舉例:
‘connStr = “Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123”
‘test是數(shù)據(jù)庫名
‘(local)是服務(wù)器名或IP地址,可以:192.168.1.1,可以是:
www.sin.cn
‘sa是數(shù)據(jù)庫用戶
‘123是數(shù)據(jù)庫用戶密碼
Sql = “select * from obj_bsc_hwcellmax3” ‘查表
rs.Open Sql, conn, 3, 3
Do While Not rs.EOF
‘下面是數(shù)據(jù)庫里頭表格的字段名對應(yīng)的數(shù)據(jù),可以根據(jù)自己的數(shù)據(jù)庫表的字段進(jìn)行修改
x(0) = rs(“DATE”)
x(1) = rs(“Period”)
x(2) = rs(“Exchid”)
x(3) = rs(“CellID”)
x(4) = rs(“小區(qū)名稱”)
x(5) = rs(“鎮(zhèn)區(qū)”)
x(6) = rs(“頻段”)
x(7) = rs(“主設(shè)備類型”)
x(8) = rs(“設(shè)備代維公司”)
x(9) = rs(“TRU_MO”)
x(10) = rs(“TRU_STS”)
x(11) = rs(“T完好率”)
x(12) = rs(“定義信道”)
x(13) = rs(“可用信道”)
x(14) = rs(“話務(wù)量”)
x(15) = rs(“F話務(wù)量”)
x(16) = rs(“H話務(wù)量”)
x(17) = rs(“平均分配PDCH”)
x(18) = rs(“混合話務(wù)量”)
x(19) = rs(“STRU數(shù)”)
x(20) = rs(“配置EPDCH數(shù)”)
x(21) = rs(“EPDCH分配數(shù)”)
x(22) = rs(“EPDCH復(fù)用度”)
x(23) = rs(“統(tǒng)計時段數(shù)”)
x(24) = rs(“平均混合話務(wù)量”)
ActiveWorkbook.Sheets(2).Cells(j, 1) = Mid(x(0), 1, 6)
ActiveWorkbook.Sheets(2).Cells(j, 2) = Mid(x(1), 1, 8)
For q = 1 To 10 ‘每次從數(shù)據(jù)庫中取出一行,字段“cell”列的數(shù)據(jù)就同A1:A10進(jìn)行比較,如果相同K=1,那么輸出到表格里
If ActiveWorkbook.Sheets(2).Cells(q, 1) = x(3) Then
k = 1
Else
k = 0
End If
Next q
If k = 1 Then
For m = 3 To 25
ActiveWorkbook.Sheets(2).Cells(j, m) = x(m – 1)
Next m
End If
j = j + 1
‘讀取數(shù)據(jù)庫下一條信息
rs.MoveNext
Loop
rs.Close
End Function
VB6程序查詢數(shù)據(jù)庫
你這個問題問的模糊,比如沒說數(shù)據(jù)庫是什旅穗洞么種類,不同的數(shù)據(jù)有不同的族攜連接方式,如果數(shù)據(jù)庫內(nèi)容小,還可以全部直接讀取到內(nèi)存中,任你使用
我擅長使用EXCEL,其他數(shù)據(jù)庫不喜歡用,工作中拆枯用不到
數(shù)據(jù)量不大,又是ACCESS,推薦使用VB6+ACCESS VBA 組合,很好用,還不容易出錯
先引用 MC ACCESS 11.O 庫,
然后打開該數(shù)據(jù)庫
把數(shù)據(jù)庫中數(shù)據(jù)全部讀入到MSFLEXGRID 控件,然后任你查詢。
既然是多方式模糊查詢,那么必須具備幾個條件:
1、首先有查詢方式的選擇框,還有查詢需要的關(guān)鍵字的輸入框;
2、模糊查詢結(jié)果不是一條記錄,那么必須將查詢出的所有結(jié)果在列表框控件中顯示出來;
3、點擊列表框中的一條記錄,在文本框中顯示這條記錄的詳細(xì)內(nèi)容。畢燃
我比較喜歡念數(shù)豎用MSFlexGrid控件顯示查詢仔大結(jié)果,下面給你一個比較實用的范例:
Private Sub Command1_Click() ‘查詢
If Combo1.Text = “” Then
MsgBox “你沒有選擇查詢方式,請選擇!”, 16, “錯誤!”
Exit Sub
End If
If Text1.Text = “” Then
MsgBox “你沒有填寫關(guān)鍵字,請?zhí)顚?!? 16, “錯誤!”
Exit Sub
End If
If Combo1.Text = “查詢條件1” Then
strSQL = “Select * From 數(shù)據(jù)表名 字段名1 Like ‘%” & Text1.Text & “%'”
ElseIf Combo1.Text = “查詢條件2” Then
strSQL = “Select * From 數(shù)據(jù)表名 Where 字段名2 Like ‘%” & Text1.Text & “%'”
ElseIf Combo1.Text = “查詢條件3” Then
strSQL = “Select * From 數(shù)據(jù)表名 Where 字段名3 Like ‘%” & Text1.Text & “%'”
End If
Call SJK(db) ‘?dāng)?shù)據(jù)庫連接函數(shù)
RS.Open strSQL, db, 2, 2
Do While Not RS.EOF
SST = SST + 1
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
If SST = 0 Then
MsgBox “你沒有你查詢的記錄!”, 16, “無記錄!”
With MSFlexGrid1
.Cols = 3
.Rows = 1
.TextMatrix(0, 0) = ” 序號”
.TextMatrix(0, 1) = ” 姓名”
.ColWidth(0) = 1000
.ColWidth(1) = 1000
.ColWidth(2) = 0
End With
db.Close
Set db = Nothing
Exit Sub
End If
With MSFlexGrid1
.Cols = 3
.Rows = SST + 1
.TextMatrix(0, 0) = ” 序號”
.TextMatrix(0, 1) = ” 姓名”
.ColWidth(0) = 1000
.ColWidth(1) = 1000
.ColWidth(2) = 0
RS.Open strSQL, db, 2, 2
For I = 1 To SST
.TextMatrix(I, 0) = I
.TextMatrix(I, 1) = RS!姓名
If Option1(0).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(1).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(2).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(3).Value = True Then
.TextMatrix(I, 2) = RS!ZID
ElseIf Option1(4).Value = True Then
.TextMatrix(I, 2) = RS!SID
End If
RS.MoveNext
Next I
RS.Close
Set RS = Nothing
End With
db.Close
Set db = Nothing
Label1(2).Caption = “本次查詢結(jié)果” & SST & “條”
End Sub
Private Sub MSFlexGrid1_Click()
If Not Val(Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2))) = 0 Then
PKID = Val(Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)))
Call SJK(db)
strSQL = “select * from 數(shù)據(jù)表名 Where ID=” & PKID & ” Order By ID”
RS.Open strSQL, db, 3, 3
Text2(0).Text = RS!字段1
Text2(1).Text = RS!字段2
Text2(2).Text = RS!字段3
Text2(3).Text = RS!字段4
Text2(4).Text = RS!字段5
Text2(5).Text = RS!字段6
Text2(6).Text = RS!字段7
Text2(7).Text = RS!字段8
RS.Close
Set RS = Nothing
db.Close
Set db = Nothing
End If
End Sub
要查詢,自然要用SQL語句,既然用SQL語句了,
要模糊查詢很簡單,有個textbox來輸入關(guān)鍵字
使用 sql select * from 表 where 關(guān)鍵字段 like textbox.text
如果是模糊查詢,那么返回的結(jié)果肯定不是一條,表現(xiàn)形兆圓式更好是用listview 選lvvreport
Private Sub txtCZ_Change()
SQL = “select * from 基礎(chǔ)檔案”
SQL = SQL & ” where 姓名 like ‘%” & Me.txtCZ.Text & “%’ or PY like ‘%” & Me.txtCZ.Text & “%’ ORDER BY zybid ASC”
Call addLIST
End Sub
Private Sub TXTZTC_Change()
SQL = “select * from 基斗猜譽礎(chǔ)檔案”
SQL = SQL & ” where 原單位 like ‘%” & Me.Txtztc.Text & “%’ ORDER BY zybid ASC”空段
Call addLIST
End Sub
Private Sub addLIST()
Me.ListView1.ListItems.Clear
Call OpenConn
rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set addLVW = Me.ListView1.ListItems.Add(, , rs!zybid, , 1)
addLVW.SubItems(1) = rs!PY
addLVW.SubItems(2) = rs!主管部門
addLVW.SubItems(3) = rs!姓名
addLVW.SubItems(4) = rs!身份證號
addLVW.SubItems(5) = rs!年齡
addLVW.SubItems(6) = rs!性別
addLVW.SubItems(7) = rs!類別
addLVW.SubItems(8) = rs!原單位
addLVW.SubItems(9) = rs!家庭住址
addLVW.SubItems(10) = rs!家庭
addLVW.SubItems(11) = rs!手機號碼
rs.MoveNext
Loop
Call CloseConn
End Sub
vba sql多表連接查詢數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于vba sql多表連接查詢數(shù)據(jù)庫,VBA與SQL多表連接查詢數(shù)據(jù)庫,EXCEL VBA怎么讀寫SQLSERVER 數(shù)據(jù)庫,VB6程序查詢數(shù)據(jù)庫的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
當(dāng)前題目:VBA與SQL多表連接查詢數(shù)據(jù)庫(vbasql多表連接查詢數(shù)據(jù)庫)
文章來源:http://www.dlmjj.cn/article/djsijgg.html


咨詢
建站咨詢
