Θέμα: Excel Insert

Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 27-01-14, 12:11
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.028
Προεπιλογή

Καλημέρα Θάνο!

Δοκίμασε τον παρακάτω κώδικα.

Δεν έχω την δυνατότητα να τον δοκιμάσω αφού δεν έχω την αντίστοιχη βάση δεδομένων.

Αν υπάρξει κάποιο πρόβλημα θα πρέπει να μας ανεβάσεις όπως είχαμε πει και ένα παράδειγμα της βάσης σου.

Κώδικας:
Private Sub btnExcelExport_Click()
    Dim rs As DAO.Recordset
    Dim rsCount As Long
    Dim i As Integer
    Dim rHeight As Single
    Dim xlApp As Excel.Application
    Dim xlWB As Excel.Workbook
    Dim wks As Excel.Worksheet
    Dim rngTotalRow As Range
    Dim MySheetPath As String
    Dim MySQL As String
    xlWB.Windows(1).Visible = True
    MySQL = "SELECT PreorderDetails.PreorderDetailDescription,Preorder .approvaltext1, "
    MySQL = MySQL & "Preorder.Approved,PreorderDetails.Price,Preorderde tails.quantity, "
    MySQL = MySQL & "Preorderdetails.UOM FROM Preorder INNER JOIN PreorderDetails "
    MySQL = MySQL & "ON Preorder.PreorderID = PreorderDetails.PreorderID WHERE "
    MySQL = MySQL & "Preorder.PreorderID =" & Me!PreorderID & " AND Preorder.Approved=true"

    Set rs = CurrentDb.OpenRecordset(MySQL, dbOpenSnapshot)

    MySheetPath = "E:\ACCESS DATABASE\sxedio2.xls"

    If rs.RecordCount Then
        rs.MoveLast
        rs.MoveFirst
        rsCount = rs.RecordCount

        On Error GoTo ExitHere
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
        Set xlWB = xlApp.Workbooks.Open(MySheetPath)
        xlWB.Windows(1).Visible = True
        Set wks = xlWB.Worksheets(1)

        wks.Range("C10") = Nz(rs!approvaltext1, "")
        Set rngTotalRow = wks.Range("A20:K20")
        If rsCount > 4 Then
            With rngTotalRow
                rHeight = .RowHeight
                For i = 1 To rsCount - 4
                    .Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                    .Offset(-1).RowHeight = rHeight
                    .Offset(-2).AutoFill Destination:=wks.Range(.Offset(-2), .Offset(-1)), Type:=xlFillFormats
                    .RowHeight = rHeight
                Next
            End With
        End If
        i = 16
        While Not rs.EOF
            wks.Range("C" & i) = Nz(rs!PreorderDetailDescription, "")
            If rs!UOM = "temaxia" Then
                wks.Range("D" & i) = Nz(rs!Quantity, 0)
            Else
                wks.Range("E" & i) = Nz(rs!Quantity, 0)
            End If
            wks.Range("H" & i) = Nz(rs!Price, 0)
            rs.MoveNext
        Wend
ExitHere:
        If Err <> 0 Then
            MsgBox "Σφάλμα: " & Err & vbLf & Err.Description, vbExclamation
        End If
        rs.Close
        Set rs = Nothing
        Set xlApp = Nothing
    End If
End Sub

Με εκτίμηση

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 28-01-14 στις 12:30.
Απάντηση με παράθεση