비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 101464
다음
Lv.0
등록일: 2014-06-172014-06-17T16:59:25+09:00 2014-06-17T16:59:25+09:00카테고리: AutoCAD & CADian

VBA로 DB에서 불러온 TEXT 데이터를 Move할때 Move한 좌표값이 DB에도 자동으로 변경되도록 하고 싶은데 방법이 없을까요?

선배님들 염치 불구하고 도움을 부탁드립니다.
VBA로 DB에서 불러온 TEXT 데이터를 Move할때 Move한 좌표값이 DB에도 자동으로 변경되도록 하고 싶은데 방법이 없을까요?

코드는 아래와 같습니다.

‘———————————————————————————————————————————–
Private Sub UserForm_Activate()
              
    Unload Me
  
End Sub
‘———————————————————————————————————————————–


Private Sub UserForm_Initialize()


Dim handle_info As String
   
Dim ado_conn As New ADODB.Connection
Dim ado_rs As New ADODB.Recordset


Dim filterset As AcadSelectionSet
Dim FilterEnt As Object
Dim FilterObj As Variant
Dim objectname As String


    On Error Resume Next
        If thisdrawing.SelectionSets(“sset”) Then _
            thisdrawing.SelectionSets(“sset”).Delete
    On Error GoTo 0
   
    On Error Resume Next
    connectionstring = “Provider=*******.1;Password=**********,User ID=*****;Data Source=*****;Persist Security Info=True”


   Set db = New ADODB.Connection
   db.Open connectionstring
  
    Set filterset = thisdrawing.SelectionSets.Add(“sset”)
   
    filterset.SelectOnScreen
   
    For Each FilterEnt In filterset
   
    handle = FilterEnt.handle
   
    Next
   
        ado_conn_bl.Open connectionstring
        ado_rs_bl.Open “select * from test_info where handle_bl='” + handle + “‘ or handle_fl='” + handle + “‘ or handle_su='” + handle + “‘ or handle_area='” + handle + “‘”, ado_conn_bl
        handle = ado_rs_bl.Fields!handle_line
        ado_conn_bl.Close
   
     db.Execute query
 
‘객체 필터링 및 handle_line 값으로 객채 선택


    Dim mode As Integer
   
    mode = acSelectionSetCrossing
   
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
   
    gpCode(0) = 0
    dataValue(0) = “text”
   
    Dim Groupcode As Variant, dataCode As Variant
   
    Groupcode = gpCode
    dataCode = dataValue
   
    Dim bl_del_cox As Double
    Dim bl_del_coy As Double
    Dim bl_del_point1(0 To 2) As Double
    Dim bl_del_point2(0 To 2) As Double
   
    ado_conn_bl.Open connectionstring
    ado_rs_bl.Open “select * from test_info where handle_line='” + handle + “‘”, ado_conn_bl
    If Not IsNull(ado_rs_bl.Fields!bl_txt_cox) Then
    bl_del_cox = ado_rs_bl.Fields!bl_txt_cox
    End If
    ado_conn_bl.Close
   
    ado_conn_bl.Open connectionstring
    ado_rs_bl.Open “select * from test_info where handle_line='” + handle + “‘”, ado_conn_bl
    If Not IsNull(ado_rs_bl.Fields!bl_txt_coy) Then
    bl_del_coy = ado_rs_bl.Fields!bl_txt_coy
    End If
    ado_conn_bl.Close
   
    bl_del_point1(0) = bl_del_cox – 200: bl_del_point1(1) = bl_del_coy + 400: bl_del_point1(2) = 0
    bl_del_point2(0) = bl_del_cox + 200: bl_del_point2(1) = bl_del_coy – 1900: bl_del_point2(2) = 0
     
    filterset.Select mode, bl_del_point1, bl_del_point2, Groupcode, dataCode
   
‘DB_Update


   
    Dim bl_point(0 To 2) As Double
    Dim fl_point(0 To 2) As Double
    Dim su_point(0 To 2) As Double
    Dim area_point(0 To 2) As Double


    Dim x_p As Variant
    Dim y_p As Variant


    Dim bl_del As Integer
   
        ado_conn_bl.Open connectionstring
        ado_rs_bl.Open “select * from test_su where handle_id='” + handle + “‘”, ado_conn_bl
        x_p = ado_rs_bl.Fields!cox
        ado_conn_bl.Close


        ado_conn_bl.Open connectionstring
        ado_rs_bl.Open “select * from test_su where handle_id='” + handle + “‘”, ado_conn_bl
        y_p = ado_rs_bl.Fields!coy
        ado_conn_bl.Close


     db.Execute query


    Dim bl_cox As String
    Dim bl_coy As String
    Dim fl_cox As String
    Dim fl_coy As String
    Dim su_cox As String
    Dim su_coy As String
    Dim area_cox As String
    Dim area_coy As String


    bl_point(0) = x_p: bl_point(1) = y_p + (font_height * 1.7): bl_point(2) = 0
    fl_point(0) = x_p: fl_point(1) = y_p + (font_height * 0.4): fl_point(2) = 0
    su_point(0) = x_p: su_point(1) = y_p – (font_height * 0.8): su_point(2) = 0
    area_point(0) = x_p: area_point(1) = y_p – (font_height * 2.1): area_point(2) = 0


    bl_cox = CDbl(Val(bl_point(0)))
    bl_coy = CDbl(Val(bl_point(1)))
    fl_cox = CDbl(Val(fl_point(0)))
    fl_coy = CDbl(Val(fl_point(1)))
    su_cox = CDbl(Val(su_point(0)))
    su_coy = CDbl(Val(su_point(1)))
    area_cox = CDbl(Val(area_point(0)))
    area_coy = CDbl(Val(area_point(1)))
   
    ‘편집 시작
    Dim Point As Variant
    Point = thisdrawing.Utility.GetPoint(, “원하는 좌표위치를 클릭하세요”)


    For Each FilterObj In filterset
   
   
    FilterObj.Move bl_del_point1, Point
‘    FilterObj.Copy
‘    FilterObj.Erase


    thisdrawing.Application.Update
‘    thisdrawing.SelectionSets(“sset”).Delete


    Next
   
    MsgBox bl_cox
       
    query = “edit test_info set bl_txt_cox= ‘” + bl_cox + “‘, bl_txt_coy = ‘” + bl_coy + “‘, fl_txt_cox ='” + fl_cox + “‘” & _
    “, fl_txt_coy='” + fl_coy + “‘, su_txt_cox='” + su_cox + “‘, su_txt_coy='” + su_coy + “‘, area_txt_cox='” + area_cox + “‘, area_txt_coy='” + area_coy + “‘”
    db.Execute query
 
End Sub

‘———————————————————————————————————————————–
CAD상에서 객체는 이동하지만 DB 상의 좌표데이터는 바뀌지가 않네요.


 


 


 


 

  • 0
  • 13 조회
공유
  • Facebook

    관련 있는 질문들

    • 선배님들 덕트 엘보 작성 리습좀 봐주세요
    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved