Đăng ký học Excel và VBA cùng GPE tháng 10 - TPHCM

Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

VBA có thể làm được 1 chương trình đồng bộ web (giống như khai báo Hải Quan) không? Hay dùng gì?

Thảo luận trong 'Lập Trình với Excel' bắt đầu bởi phanminhphuong, 9 Tháng mười 2017.

  1. phanminhphuong

    phanminhphuong Thành viên hoạt động

    Chào mọi người!

    Mình muốn hỏi VBA/ VB có đủ các công cụ cần thiết để làm được 1 phần mềm khai báo Hải Quan không (https://vnsw.gov.vn).
    Giống như cách mà chương trình ECUS - VNACCS khai báo Hải Quan điện tử ấy.

    * Hoặc như phần mềm đồng bộ dữ liệu khai báo này:
    https://www.youtube.com/playlist?list=PLUSBtpiJVLjJzOdnZmYhL3WZ0tOKjFaCs
    trước thấy họ làm hay quá mà liên lạc 2B System Co., LTD không trả lời, giờ chả tìm thấy ở đâu nữa.

    Nếu VBA không thể làm được vui lòng cho biết ngôn ngữ lập trình nào ổn/ học và áp dụng nhanh & có thể xử lý được yêu cầu, mình không ngại mất thời gian để tìm hiểu và làm vì mình sống cả đời với bạn https://vnsw.gov.vn này.

    Mong mọi người cho lời khuyên/ hướng đi hợp lý.

    Chân thành cám ơn!
     
  2. be09

    be09 Thành viên gạo cội

    Có cái tương tự nè:
    PM.PNG
     
    phanminhphuong thích bài này.
  3. phanminhphuong

    phanminhphuong Thành viên hoạt động

    Cám ơn bạn!

    Theo hình thì chương trình xuất nhập khẩu chỉ để quản lý dữ liệu xuất nhập trên excel đúng không ạ?
    Mình muốn tìn hiểu 1 chương trình nói nôm na là đồng bộ dữ liệu người dùng khai báo (có thể trên excel) với dữ liệu trên web (lấy dữ liệu từ web về, tải dữ liệu lên). Dùng control webbrowser của VBA thì thấy là yếu và chậm.

    Ngôn ngữ lập trình nào phù hợp nhất với việc thao tác, lấy dữ liệu, đồng bộ dữ liệu với web vậy các bạn?
     
    Lần chỉnh sửa cuối: 10 Tháng mười 2017
  4. hoi_joker

    hoi_joker Thành viên mới

    Chả có cách nào dung VBA khả thi đâu, cái này điều khiển Internet Explorer để đăng nhập và upload file làm tồi hồi còn e-manifest : https://e-manifest.customs.gov.vn

    Mã:
    Option Explicit
    
    Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    
    Global Const SW_MAXIMIZE = 3
    Global Const SW_SHOWNORMAL = 1
    Global Const SW_SHOWMINIMIZED = 2
    Sub Add_Document()
      Dim oIE As Object ' InternetExplorer.Application
      Dim sURL As String
      Dim UserN As Object ' MSHTML.IHTMLElement
      Dim PW As Object ' MSHTML.IHTMLElement
      'Dim Element As Object ' HTMLButtonElement
      Dim btnInput As Object ' MSHTML.HTMLInputElement
      Dim ElementCol As Object ' MSHTML.IHTMLElementCollection
      'Dim Link As Object ' MSHTML.HTMLAnchorElement
      Dim ieDoc As Object  'MSHTML.HTMLDocument
      Dim i As Long, j As String, k, m As String, n As String, r As Long, s As String, t, u As String, v As String, x As String, y As String
      Dim sText As String, startS As String, endS As String, sMv As String
      Const Agency As String = "Agency"
     
    On Error Resume Next
     
    Application.ScreenUpdating = False
    Application.Visible = False
    
    Select Case Application.Assistant.DoAlert("NOTICE - " & Agency, [U64].Value, msoAlertButtonOKCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
        Case vbCancel
            GoTo TheEnd
    End Select
    
    Kill_IE_Process 'Dong tat ca cac cua so IE
    
    '===== VAO TRANG THEM HO SO E-MANIFEST ============
    Set oIE = CreateObject("InternetExplorer.Application")
        sURL = "https://e-manifest.customs.gov.vn/profile/record/list.aspx"
    
    With oIE
        .Navigate sURL
        .Visible = True
        apiShowWindow .hwnd, SW_MAXIMIZE
        'Loop until the page finishes loading
        Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
    End With
    
    '===== NHAN VAO NUT CONFIRM ========================
    Set ieDoc = oIE.Document
    Set btnInput = ieDoc.all.Item("overridelink")
        btnInput.Click
    Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
    '===== DANG NHAP ===================================
    u = "ctl00$PlaceHolderMain$signInControl$"
    v = "ctl00$ctl27$wPshipList$ctl00$"
    x = "ctl00_ctl27_wPshipList_ctl00"
    y = "__tab_" & x & "_tabDocument_"
    
    Set UserN = ieDoc.getElementsByName(u & "UserName")
    If Not UserN Is Nothing Then
        UserN(0).Value = "577777777"   'UserName (thay doi phu hop)
    End If
     
    Set PW = ieDoc.getElementsByName(u & "password")
    If Not PW Is Nothing Then
        PW(0).Value = "password"      'Password
    End If
    
    Set btnInput = ieDoc.all.Item("ctl00_PlaceHolderMain_signInControl_login")
        btnInput.Click                  'Click Dang Nhap
    Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
    '====================================================
    sText = ieDoc.body.innerHTML                    'Lay Source code Web
    startS = InStr(sText, x & "_ddlShip")
    endS = InStr(sText, v & "ddlPort")
    sText = Mid(sText, startS, endS - startS)       'Lay doan giua ten tau trong Source web
    
    If InStr(UCase(sText), UCase([D6])) > 0 Then    'NEU TAU CO TRONG HE THONG E-MANIFEST
    ReDo:
        sURL = "https://e-manifest.customs.gov.vn/profile/record/add.aspx"
        oIE.Navigate sURL
        Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
        '===== DIEN THONG TIN TAO HO SO TAU =============
        For i = 1 To 8
            Select Case i
                'Case 1:     j = v & "ddlShip":              k = sRet                'Ten tau
                Case 1:     j = v & "ddlDocumentType":      k = [E5]                'Loai ho so
                Case 2:     j = v & "ddlPort":              k = [E8]                'Ten cang
                Case 3:     j = v & "txtCaption":           k = UCase(Trim([D7]))   'Master name
                Case 4:     j = v & "txtTime":              k = [E10]               'Thoi gian den/ chay
                Case 5:     j = v & "ddlHours":             k = [D13]               'Gio
                Case 6:     j = v & "ddlMinutes":           k = [D14]               'Phut
                Case 7:     j = v & "txtVoyageNumber":      k = UCase(Trim([D15]))  'Voy no.
                Case 8:     j = v & "txtRemarks":           k = UCase(Trim([D16]))  'Remarks
            End Select
            Set UserN = ieDoc.getElementsByName(j)
            If Not UserN Is Nothing Then
                UserN(0).Value = k
            End If
        Next i
        
        apiShowWindow oIE.hwnd, SW_SHOWMINIMIZED
        Application.Visible = True
        Select Case Application.Assistant.DoAlert("FILL VSL NAME - " & Agency, [U75].Value, msoAlertButtonOKCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbOK
            Case Else
                GoTo TheEnd
        End Select
        Application.Visible = False
        
        '===== NHAN NUT TAO HO SO TAU ===================
        Set btnInput = ieDoc.all.Item(x & "_lblAdd")
            btnInput.Click              'Click Dang Nhap
        Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
        
        '===== TAI/ UPLOAD BAN KHAI HANG HOA ============
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD GOOD DECLARATION - " & Agency, [U65].Value, msoAlertButtonOKCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbCancel
                GoTo TheEnd
            End Select
            oIE.Visible = True
            u = x & "_tabDocument_TabPanel"
            
            Set btnInput = ieDoc.all.Item(u & "0_upFileGoodDecralation_rdnStatus_1")
                btnInput.Click              'chon nut thay doi
            Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
            Set btnInput = ieDoc.all.Item(u & "0_upFileGoodDecralation_fileUpload")
                btnInput.Click              'mo cua so chon file upload
            Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
            Set btnInput = ieDoc.all.Item(u & "0_upFileGoodDecralation_lbtnSave")
                btnInput.Click              'Nhan vao nut Upload
            Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
        '===== TAI/ UPLOAD CARGO MANIFEST ===============
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD CARGO MANIFEST - " & Agency, [U66].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes
    UploadManifest:
                oIE.Visible = True
                
                Set btnInput = ieDoc.all.Item(y & "TabPanel1")
                    btnInput.Click              'chuyen tab Upload BL
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
                '-----------------
                Set btnInput = ieDoc.all.Item(u & "1_upFileHouseBill_rdnStatus_1")
                    btnInput.Click              'chon nut thay doi
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
                '-----------------
                Set btnInput = ieDoc.all.Item(u & "1_upFileHouseBill_fileUpload")
                    btnInput.Click              'mo cua so chon file upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
                '-----------------
                Set btnInput = ieDoc.all.Item(u & "1_upFileHouseBill_lbtnSave")
                    btnInput.Click              'Nhan vao nut Tai len
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
                '-----------------
                oIE.Visible = False
                If MsgBox("Do you want to upload other Cargo Manifest?", vbOKCancel, "UPLOAD OTHER CARGO MANIFEST") = vbOK Then GoTo UploadManifest
            Case vbCancel
                GoTo TheEnd
        End Select
        
        '===== TAI/ UPLOAD BAN KHAI CHUNG ================
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD GENERAL DECLARATION - " & Agency, [U67].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes
                oIE.Visible = True
                Set btnInput = ieDoc.all.Item(y & "TabPanel2")
                    btnInput.Click              'chuyen tab Upload Bkc
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            
                Set btnInput = ieDoc.all.Item(u & "2_upFileGeneralDecralation_rdnStatus_1")
                    btnInput.Click              'chon nut thay doi
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "2_upFileGeneralDecralation_fileUpload")
                    btnInput.Click              'mo cua so chon file upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "2_upFileGeneralDecralation_lbtnSave")
                    btnInput.Click              'Nhan vao nut Upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            Case vbCancel
                GoTo TheEnd
        End Select
            
        '===== TAI/ UPLOAD CREW LIST =====================
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD CREW LIST - " & Agency, [U68].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes
                oIE.Visible = True
                Set btnInput = ieDoc.all.Item(y & "TabPanel3")
                    btnInput.Click              'chuyen tab Upload Crew List
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            
                Set btnInput = ieDoc.all.Item(u & "3_upFileCrew_rdnStatus_1")
                    btnInput.Click              'chon nut thay doi
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "3_upFileCrew_fileUpload")
                    btnInput.Click              'mo cua so chon file upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "3_upFileCrew_lbtnSave")
                    btnInput.Click              'Nhan vao nut Upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            Case vbCancel
                GoTo TheEnd
        End Select
            
        '===== TAI/ UPLOAD CREW 'S EFFECT ================
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD CREW 'S EFFECT DECLARATION - " & Agency, [U69].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes
                oIE.Visible = True
                Set btnInput = ieDoc.all.Item(y & "TabPanel4")
                    btnInput.Click              'chuyen tab Upload Bkc
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            
                Set btnInput = ieDoc.all.Item(u & "4_upFileCrewEffect_rdnStatus_1")
                    btnInput.Click              'chon nut thay doi
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "4_upFileCrewEffect_fileUpload")
                    btnInput.Click              'mo cua so chon file upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "4_upFileCrewEffect_lbtnSave")
                    btnInput.Click              'Nhan vao nut Upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            Case vbCancel
                GoTo TheEnd
        End Select
        
        '===== TAI/ UPLOAD SHIP 'S STORE =================
        oIE.Visible = False
        Select Case Application.Assistant.DoAlert("UPLOAD SHIP 'S STORE DECLARATION - " & Agency, [U70].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes
                oIE.Visible = True
                Set btnInput = ieDoc.all.Item(y & "TabPanel5")
                    btnInput.Click              'chuyen tab Upload Bkc
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            
                Set btnInput = ieDoc.all.Item(u & "5_upFileShipStore_rdnStatus_1")
                    btnInput.Click              'chon nut thay doi
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "5_upFileShipStore_fileUpload")
                    btnInput.Click              'mo cua so Upload ban khai hang hoa
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
    
                Set btnInput = ieDoc.all.Item(u & "5_upFileShipStore_lbtnSave")
                    btnInput.Click              'Nhan vao nut Upload
                Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
            Case vbCancel
                GoTo TheEnd
        End Select
        
        oIE.Visible = False
        Application.Visible = True
        
        Select Case Application.Assistant.DoAlert("NOTICE - " & Agency, [U71].Value, msoAlertButtonOK, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
        End Select
        
    '***** NEU TAU CHUA CO TRONG HE THONG => TAO TAU MOI *****
    Else
        Application.Visible = False
        sURL = "https://e-manifest.customs.gov.vn/profile/ship/add.aspx"
        oIE.Navigate sURL
        oIE.Visible = False
        Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
        Select Case Application.Assistant.DoAlert("CREAT NEW VESSEL - " & Agency, [U72].Value, msoAlertButtonYesNoCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
            Case vbYes              'Tao tau tu dong tren web
                For k = 1 To 15
                    Select Case k
                        Case 1:   j = v & "txtName":              m = "VESSEL 'S NAME?":                      n = "NHAP TEN TAU":                  s = Trim([D6]):         t = 2
                        Case 2:   j = v & "txtIMO":               m = "IMO NUMBER?":                          n = sMv & "IMO NUMBER":              s = "[IMO No.]":        t = 1
                        Case 3:   j = v & "txtCall":              m = "CALL SIGN?":                           n = sMv & "HO HIEU":                 s = "[Call sign]":      t = 2
                        Case 4:   j = v & "txtRegisterNumber":    m = "REGISTED NUMBER?":                     n = sMv & "SO DANG KY":              s = "[Register No.]":   t = 2
                        Case 5:   j = v & "txtFishing":           m = "REGISTED NUMBER (fishing boat)?":      n = sMv & "SO DANG KY TAU CA":       s = s:                  t = 2
                        Case 6:   j = v & "txtDate":              m = "DATE OF REGISTRATION (DD/MM/YYYY)?":   n = sMv & "REGISTED DATE":           s = "DD/MM/YYYY":       t = 2
                        Case 7:   j = v & "txtNetTonnage":        m = "NET TONNAGE?":                         n = sMv & "TRONG TAI THUAN":         s = "[NRT]":            t = 1
                        Case 8:   j = v & "txtNet":               m = "NRT (fishing boat)?":                  n = sMv & "TRONG TAI THUAN TAU CA":  s = s:                  t = 1
                        Case 9:   j = v & "txtGross":             m = "GROSS TONNAGE?":                       n = sMv & "TONG DUNG TICH":          s = "[GRT]":            t = 1
                        Case 10:  j = v & "txtGrossTonnage":      m = "GRT (fishing boat)":                   n = sMv & "TONG DUNG TICH TAU CA":   s = s:                  t = 1
                        Case 11:  j = v & "txtWeightTonnage":     m = "DEAD WEIGHT?":                         n = sMv & "TRONG TAI":               s = "[DWT]":            t = 1
                        Case 12:  j = v & "txtLOA":               m = "LOA?":                                 n = sMv & "CHIEU DAI LON NHAT":      s = "[LOA]":            t = 1
                        Case 13:  j = v & "txtBreadth":           m = "BREATH?":                              n = sMv & "CHIEU RONG":              s = "[Chieu rong]":     t = 1
                        Case 14:  j = v & "txtSailingSpeed":      m = "VESSEL 'S SPEED?":                     n = sMv & "TOC DO":                  s = 12:                 t = 2
                        Case 15:  j = v & "txtRemarks":           m = "REMARKS":                              n = sMv & "GHI CHU":                 s = "":                 t = 2
                    End Select
                
                    Set UserN = ieDoc.getElementsByName(j)
                        If Not UserN Is Nothing Then
                            UserN(0).Value = UCase(Application.InputBox(m, n, s, , , , , t))
                            If k = 1 Then sMv = "MV. " & UserN(0).Value & " - "
                            If k = 4 Or k = 7 Or k = 9 Then
                                s = UserN(0).Value
                            End If
                        End If
                Next k
                            
                    Set UserN = ieDoc.getElementsByName(v & "ddlProcessType")
                        If Not UserN Is Nothing Then
                            UserN(0).Value = 9  '9 = Registration ; 5 = Correction ; 1 = Cancellation
                        End If
                    
                    Set UserN = ieDoc.getElementsByName(v & "ddDanhSachHangTau")
                        If Not UserN Is Nothing Then
                            UserN(0).Value = 217  '217 = CTY CP DLHH VINACOMIN
                        End If
                  
                    Set ElementCol = ieDoc.getElementsByTagName("input")
                        For Each btnInput In ElementCol
                            If btnInput.ID = x & "_chkSubmitTo_0" Or btnInput.ID = x & "_chkSubmitTo_1" Or btnInput.ID = x & "_chkSubmitTo_2" Then
                                btnInput.Click
                            End If
                        Next
              
                oIE.Visible = True
                Application.Visible = True
                  
                Do While oIE.LocationURL = sURL
                    Select Case Application.Assistant.DoAlert("CREAT NEW VESSEL - " & Agency, [U73].Value, msoAlertButtonOKCancel, msoAlertIconInfo, msoAlertDefaultFirst, msoAlertCancelFirst, False)
                        Case vbOK
                            Set btnInput = ieDoc.all.Item(x & "_lblAdd")
                                btnInput.Click              'Nhan vao nut Tai len
                            oIE.Visible = True
                            Do While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Loop
                        Case vbCancel
                            GoTo TheEnd
                    End Select
                Loop
                  
                GoTo ReDo       'Luu tau moi va quay lai tao ho so E-Manifest
            Case vbCancel
                Kill_IE_Process
            End Select      'Ket thuc truong hop tao tau moi
    End If
    
    TheEnd:
      oIE.Visible = True
      Set oIE = Nothing
      Set ieDoc = Nothing
      Set UserN = Nothing
      Set PW = Nothing
      Set btnInput = Nothing
      Set ElementCol = Nothing
    
    Application.Visible = True
    Application.ScreenUpdating = True
    
    End Sub
    
     

    Các file đính kèm:

    phanminhphuongNguyễn Duy Tuân thích bài viết này.
  5. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    Việc truy xuất dữ liệu vào Web là không thể nếu người lập trình không có tài khoản có quyền truy vấn CSDL. Nếu có làm thì cùng lắm là lấy được dữ liệu tĩnh trên web dựa vào tag <tb> (hoặc có thể cái khác).
    Nguyễn lý của web là: TRUY VẤN CSDL -> RECORDSER -> HTML để hiển thị phía client (trình duyệt) cho người sử dụng.
    Từ Web - LẤY THÔNG TIN TRÊN CÁC MỤC NHẬP -> CSDL.
    Tất cả các việc liên quan đến CSDL trên đều là người lập trình web có tài khoản để Connection tới CSDL (MySQL, SQL Server,...).
    Như vậy mấu chốt là làm sao để có thông tin kết nối và CSDL chứ không phải lấy dữ liệu từ web rồi đẩy vào web. Web chỉ như một bản report hiển thị những gì trong CSDL có mà thôi.

    Ngôn ngữ lập trình nào nếu có thông tin kết nối nối vào CSDL đều làm được hết không cứ phải C#, Delphi,.VB, VBA....
    (Nếu ai đã có thông tin truy xuất CSDL share lên đây đồng nghĩa là CSDL dùng cho website trên đã bị hack!).
     
    be09, phanminhphuonghoi_joker thích bài viết này.
  6. doveandrose

    doveandrose hello

    Mình thấy Bạn đang điều khiển IE bằng code VBA đấy chứ, sao lại nói là chả có cách nào dùng VBA :) --=0
    Mình còn nghe nói diễn đàn này có 1 số bạn nào đó không điều khiển trình duyệt nào mà vẫn tự động đăng nhập, tự động Upload File, tự động gửi bài viết (gọi tắt là tự động trả lời) lên diễn đàn GPE đấy. !$@!!!$@!!
     
    phanminhphuong, hoi_jokerbefaint thích bài viết này.
  7. hoi_joker

    hoi_joker Thành viên mới

    Mình nói dùng VBA không khả thi ý là ko nhanh/ không phù hợp. Thà khai báo bằng tay còn hơn. Chứ VBA khả năng khó thực hiện được như phần mềm khai báo hải quan (truy cập CSDL, load CSDL, thay đổi CSDL, cập nhật CSDL ...) trên phần mềm VBA. Quá khó :(:(:(
     
    phanminhphuong thích bài này.
  8. phanminhphuong

    phanminhphuong Thành viên hoạt động

    Đúng là mình muốn tìm hiểu cách làm được phần mềm có chức năng như trên.
     
  9. be09

    be09 Thành viên gạo cội

    Đang thất nghiệp nên bài 2 đưa lên chơi cho vui thôi.
    Còn cái vụ bạn nêu bài 1, thì nên bám và liên hệ với Nguyễn Duy Tuân (Hà Nội), đã có ý kiến ở bài 5 để được tư vấn.
     
    Lần chỉnh sửa cuối: 10 Tháng mười 2017
    Nguyễn Duy Tuânphanminhphuong thích bài viết này.
  10. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    Em đang muốn lao động là bác tạo điều kiện ngay á. Cảm ơn Bác! :D:D:D
     
    befaint, phanminhphuongbe09 thích bài viết này.
  11. phanminhphuong

    phanminhphuong Thành viên hoạt động

    Vui lòng cho mình 1 số ví dụ hoặc phần mềm giao tiếp với web (truy cập CSDL, tải CSDL, thay đổi CSDL, cập nhật CSDL ...) mà không phải là dùng VBA điều khiển Internet Explorer. Xin cám ơn!
     
    Nguyễn Duy Tuân thích bài này.
  12. befaint

    befaint |||||||||||||

    Sao bạn không gọi trực tiếp anh ấy cho nhanh.Tiện thể có thể hỏi han thêm thông tin khác.

    http://www.bluesofts.net/index.php?option=com_phocamaps&view=map&id=1&Itemid=64
     
    phanminhphuong, be09Nguyễn Duy Tuân thích bài viết này.
  13. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    Như mình đã nói bài trên. Dữ liệu biến đổi trên web hoàn toàn lấy từ CSDL. Vậy bạn dùng bất kể ngôn ngữ gì để có thể INSERT, UPDATE, DELETE, SELECT vào CSDL là xong. Khi bạn thay đổi dữ liệu rồi thì web nó cứ hiển thị đúng như trong CSDL thôi. Mỗi trang web có một cấu trúc CSDL khác nhau (theo tính chất nghiệp vụ của công ty), loại CSDL cũng có thể khác nhau ( phổ biến hiện nay là SQL Server, MySQL). Mình chỉ bày hướng cho bạn làm thôi chứ để làm một ví dụ hơi mất nhiều thời gian vì mình không chuyên về web.
    Bạn sẽ rất rất khó để có tài khoản kết nối vào một CSDL của một công ty nào đó vì đó là bảo mật dữ liệu của họ, trừ phi họ công bố. Vậy nên chỉ học để hiểu bản chất, khi cần thì truy xuất vào web của riêng mình thì được.
     
    phanminhphuongbe09 thích bài viết này.
  14. AutoReply

    AutoReply Thành viên thường trực

    sau khi hiểu bản chất mà anh nói rồi nhưng không có tài khoản kết nối vào CSDL của trang Web thì sao anh ? bó tay chịu trói chăng ? +-+-+-++-+-+-+
     
  15. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    Không quan trọng là có web hay không có. Như mình đã nói mạch máu của web là CSDL. Bạn học tốt về kết nối và truy xuất CSDL là ok, còn khi bạn biết CSDL nào đó của pm nào, của web nào thì chỉ cần kết nối đến CSDL , INSERT, UPDATE đúng table là xong thôi.

    Bạn có thể dùng ADO để học việc này. Tuy nhiên hãy học theo các bước:

    1. Học cách cài và quản trị một loại CSDL Client-Server: MySQL, SQL Server. Bạn học MySQL vì nó phổ biến cho nhiều website hiện nay, đặc biệt các web viết bằng PHP.
    2. Học các câu lệnh SELECT, INERT, UPDATE, DELETE tới CSDL MySQL..

    3. Dùng ADO kết nối và làm việc với CSDL MySQL.

    Mỗi bước trên bạn tìm Google ra hết nhé!
     
    phanminhphuong, AutoReplybefaint thích bài viết này.
  16. befaint

    befaint |||||||||||||

    Híc. Anh ơi, "Cô Rô bốt" xinh đẹp ở trên đã qua mấy bước anh hướng dẫn lâu rồi. -\\/.-\\/.
     
    Nguyễn Duy Tuân thích bài này.
  17. VetMini

    VetMini Thành viên gạo cội

    Bạn có từng đồng hành với người ta hôn mà dám nói vậy?
    Cái cô này đâu có hề qua bước nào. Ả ta tự động thấy ở đích. Mình bò mệt phở hơi tai mà ngẫng đầu lên vẫn thấy ả ta dẫn trước mặt.
     
    phanminhphuong thích bài này.
  18. befaint

    befaint |||||||||||||

    "mát con mắt" thì lúc nào cũng dẫn trước mặt mà anh. :p:p
     
  19. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    Thế thì chờ có tài khoản kết nối csdl thôi :). Thường khi viết ứng dụng khai thác data dùng chung thì cty họ sẽ cấp cho một tài khoản đẻ ghi nhận thông tin mà không làm nguy hiểm tới hệ thống. Nếu lấy được thông tin trong csdl dễ dàng thì danh sách tài khoản của các diễn đàn vào tay mình hết :)
     
    phanminhphuong thích bài này.
  20. thuyyeu99

    thuyyeu99 Thành viên tiêu biểu

    Cái vụ này theo mình nghĩ bạn rành về cái nào thì đi theo cái đó Visua Studio, delphi, java.., (mà còn cái vụ viết xong rồi chạy được đa nền tảng nữa)
     
    phanminhphuongNguyễn Duy Tuân thích bài viết này.

Chia sẻ trang này