рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ, рдпрд╛ рдПрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрдпрдирд┐рдд рдЙрдкрдХрд░рдг

рд╢реБрдн рджрд┐рдиред

рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдбрд┐рдЧреНрд░реА рдкрд░, рдореБрдЭреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рдПрдХ рддрд╛рдЬрд╛ рд▓реЗрдЦ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛
"рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЦреЛрдЬреЗрдВ, рдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛" http://habrahabr.ru/post/141258/ ред рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ, рд╕рд┐рдВрдЧрд░реЙрдлреНрдЯрдлреЙрд▓ , рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЙрдкрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред рдФрд░ рдЧрд▓рдд рдЙрдкрдХрд░рдг рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдкреВрд░реА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рдиред
рд▓реЗрдЦрдХ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреАрдмреА рдЙрдкрдХрд░рдг рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдереЗ, рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред

2 рддрд░реАрдХреЗ рд╕рдВрднрд╡ рд╣реИрдВред
  1. рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ xls рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдБрдЪрдирд╛ рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред http://vbadud.blogspot.com/2008/05/use-excel-as-database.html
  2. рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрд╛рдж рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рдирд╛ред

рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЕрдХреНрд╕рд░ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди xls рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдСрдЯреЛрдХреИрдб рдореЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде, рдлрд┐рд░ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп

  1. рд╣рдо рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдореИрдВ DAO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЧрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдпрд╣ рд░рд╛рдордбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
  2. рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ
  3. рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рд╕реНрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ
  4. рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдФрд░ рд╕реЙрд░реНрдЯ рдХрд░рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ SQL рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВред
  5. рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред


'  ,       IDE VBA      "Ioeaea! Auiieiaiea i?ia?aiiu i?a?aaii!" Sub grid() Dim retObj As AcadObject Dim retPnt As Variant Dim db As DAO.Database Dim rst As Recordset Dim ssetObj As AcadSelectionSet Dim Items As Object Dim handle As String mesto_db = Environ("APPDATA") & "\" name_db = Environ("UserName") & "_grid" Set fs1 = CreateObject("Scripting.FileSystemObject") fs1.CreateTextFile mesto_db & name_db & ".mdb" fs1.DeleteFile mesto_db & name_db & ".mdb" Set db = DAO.CreateDatabase(mesto_db & name_db & ".mdb", dbLangCyrillic) db.Execute "CREATE TABLE Tabl1 " & "(x REAL, y REAL, h CHAR(10));" On Error Resume Next Set ssetObj = ThisDrawing.SelectionSets("Boxa") If Err <> 0 Then Err.Clear Set ssetObj = ThisDrawing.SelectionSets.Add("Boxa") End If ssetObj.Clear ssetObj.SelectOnScreen On Error GoTo fuck Dim temp_block As AcadBlockReference For Each item In ssetObj If item.ObjectName = "AcDbBlockReference" Then If item.EffectiveName = "SV" Then Attributes = item.GetAttributes BlockProperties = item.GetDynamicBlockProperties point = item.insertionPoint point1 = CLng(point(0)) point2 = CLng(point(1)) Set temp_block = item handle = CStr(temp_block.handle) db.Execute "INSERT INTO Tabl1 (x,y,h) VALUES (" & point1 & ", " & point2 & ", \'" & handle & "\');" End If End If Next Set rst = db.OpenRecordset("SELECT x, y, h FROM Tabl1 GROUP BY x, y, h ORDER BY x, y, h ;") If rst.RecordCount > 0 Then rst.MoveFirst Do While Not rst.EOF = True X0 = rst.Fields(0) Y0 = rst.Fields(1) rst.MoveNext Loop End If fuck: If Err <> 0 Then ThisDrawing.Utility.Prompt (vbCrLf & "Error!" & vbCrLf) rst.Close db.Close Set db = Nothing ssetObj.Clear ssetObj.Delete End Sub 


рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐:

рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - рд░рдирдЯрд╛рдЗрдо
100 * 100 - 5.89 рд╕реЗрдХрдВрдб
200 * 200 - 24.73 рд╕реЗрдХрдВрдб
400 * 200 - 47.33 рд╕реЗрдХрдВрдб
рд░реИрдЦрд┐рдХ рд╕рдВрдмрдВрдз

рдирд┐рд╖реНрдХрд░реНрд╖:

рд▓реЗрдЦ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рд╡реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рд▓рд┐рдП рджреЛ рд╣рд╛рде рд╣реИрдВред
рдореИрдВ рдХреЗрд╡рд▓ рддреАрд╕рд░рд╛ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рджреЗрдЧрд╛ред

рдкреБрдирд╢реНрдЪ

1. рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреЛрдЯ рдореЗрдВ рд╕реНрд░реЛрдд (рд╕реНрд░реЛрдд) рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, VBA рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
2. рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  Dim x_col As New Collection Dim txt_arr() As Variant For Q = 1 To UBound(txt_arr) x_col_Item = txt_arr(Q) x_col.Add x_col_Item, CStr(x_col_Item) Next 

рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In141441/


All Articles