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ì?

Liên hệ QC

phanminhphuong

Thành viên hoạt động
Tham gia
26/7/13
Bài viết
127
Được thích
68
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!
 
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:
Upvote 0
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?

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
 

File đính kèm

  • KHAI BAO E-MANIFEST.xlsm
    53.3 KB · Đọc: 77
Upvote 0
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?

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!).
 
Upvote 0
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ì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. !$@!!!$@!!
 
Upvote 0
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. !$@!!!$@!!
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ó :(:(:(
 
Upvote 0
Đú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.
Đ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:
Upvote 0
Đ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.

Em đang muốn lao động là bác tạo điều kiện ngay á. Cảm ơn Bác! :D:D:D
 
Upvote 0
Em đang muốn lao động là bác tạo điều kiện ngay á. Cảm ơn Bác! :D:D:D
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!
 
Upvote 0
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!
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
 
Upvote 0
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!

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.
 
Upvote 0
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.

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 ? +-+-+-++-+-+-+
 
Upvote 0
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 ? +-+-+-++-+-+-+

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é!
 
Upvote 0
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. -\\/.-\\/.

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.
 
Upvote 0
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. -\\/.-\\/.

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 :)
 
Upvote 0
Chào mọi người!

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!
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)
 
Upvote 0
Web KT
Back
Top Bottom