- ©«¤l
- 11
- ¥DÃD
- 5
- ºëµØ
- 0
- ¿n¤À
- 16
- ÂI¦W
- 0
- §@·~¨t²Î
- win7
- ³nÅ骩¥»
- sp3
- ¾\ŪÅv
- 10
- µù¥U®É¶¡
- 2016-2-9
- ³Ì«áµn¿ý
- 2020-2-21

|
[µo°Ý] ½Ð°Ý¦p¦ó±NSQL¸ê®Æªí¤¤¬Y¤@Äæ¸ê®Æ½Æ»s¨ìEXCEL©O?
¥»©«³Ì«á¥Ñ algoji3ji3 ©ó 2018-10-30 19:57 ½s¿è
¦U¦ì¤j¤j½Ð°ÝCopyFromRecordset rs·|±N¾ãÓ¸ê®Æªí¿é¥X¨ìEXCEL¤W¡A¦ý¬O¦pªG§Ú¥un¨ä¤¤¤@¾ãÄæ¸ê®Æ¸Ó«ç»ò§ï©O?- Private Sub CommandButton2_Click()
-
- '©w¸q³¡¥÷
- Dim cn As ADODB.Connection 'Excel³s±µ
- Dim rs As ADODB.Recordset '±o¨Óªºµ²ªG,·|©ñ¨ì¥ß³oÓrsªº¦a¤è.
- Dim strDataSrcXlsPath As String '¼Æ¾Ú®wEXCEL¦ì¸m
- Dim strQuery As String '¥Î§@®³¼Æ¾ÚªºSQL
- Dim strStartlocation As String '©w¸q±o¨Ó¼Æ¾Ú,©ñ¨ì¨º¤@Ó¦ì¸m.
-
- 'I) ¥H¤U«Ø¥ß¼Æ¾Ú®w³s±µ
- strDataSrcXlsPath = ThisWorkbook.Path & "\¸ê®Æ.xlsx" '©w¥ß¼Æ¾Ú®wEXCEL¦ì¸m
- Set cn = New ADODB.Connection
- With cn
- '½T©w³s±µ©Ò¥ÎªºLibrary
- .Provider = "Microsoft.ACE.OLEDB.12.0"
- .CursorLocation = adUseClient
- '§â³s±µ«ü¦V«ü©wExcel
- 'xtended properties¬°excelªºª©¥», ³q±`¬°12 ©Î 8,
- '12¬°2007ExcelÀÉ(¦pXLSX,XLSM). 8¥i¬Û®e1997-2003µ¥excel(XLS)
- .ConnectionString = "Data Source=" & strDataSrcXlsPath & _
- ";Extended Properties=Excel 12.0;"
- '¶}©l³s±µ,³oÓ®ÉÔACE·|¥´¶}excel
- .Open
- End With
- 'II) ¥H¤U¹B¦æSQL©M¦^¶Ç¼Æ¾Ú
- '®³¥X¤@¦æ¸ê®Æ,©Ò¥ÎSQL¬[ºc¤j¬ù¬°
- 'SELECT ... FROM ... WHERE
- '
- 'SELECT ¤Wªº * ¥Î§@«ü©ú®³¥X©Ò¦³ªí¤WªºÄæ¦ì
- 'TOP 50 ¬O«ü©â¥XÀY50¦C¼Æ¾Ú
- '
- 'FROM ±qDATASHEET¤u§@ªí©â¥X
- 'strQuery = "SELECT top 10 * FROM [Á`ªí$]"
- strQuery = "SELECT ¯¸§O¤ÀªR,Ãþ§O,¤ë¥÷,¤é´Á,SUM(²£¥X¼Æ) AS Á`¼Æ " & _
- "FROM [Á`ªí$] " & _
- "where ¤é´Á between #2018/9/1# and #2018/9/30# " & _
- "GROUP BY ¯¸§O¤ÀªR,Ãþ§O,¤ë¥÷,¤é´Á HAVING Ãþ§O='305AS'" & _
- "ORDER BY ¯¸§O¤ÀªR,¤é´Á"
-
- 'strQuery = "SELECT ¤é´Á " & _
- "FROM [Á`ªí$] " & _
- "where ¤é´Á between #2018/9/1# and #2018/9/30# " 'HAVING Ãþ§O='305AS'"
- Set rs = cn.Execute(strQuery) '°õ¦æSQL
- 'III) §â¼Æ¾Ú§Û¦Ü©Ò»Ýªº¦ì¸m
- strStartlocation = "A1"
-
- 'III-1 §âÄæ¦ì¦WºÙ¤@Ó¤@¦a®³¥X
- 'rs.Fields.Count : Äæ¦ì¼Æ¼Æ
- 'rs.Fields(n).Name : Äæ¦W
- Dim lngColCounter As Long
- i = -1
- For lngColCounter = 0 To rs.Fields.Count - 1
- Range(strStartlocation).Offset(0, lngColCounter) = rs.Fields(lngColCounter).Name
- Next lngColCounter
- 'III-2 §â¼Æ¾Ú®w¸ê®Æ¦Cªí®³¥X
- ActiveSheet.Range(strStartlocation).Offset(1, 0).CopyFromRecordset rs
-
- 'IV) Ãö±¼/²M²z³s±µ
- cn.Close
- Set cn = Nothing
- Set rs = Nothing
- End Sub
½Æ»s¥N½X
«ü©wÄæ¶×¥X.rar (66.69 KB)
|
|