vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest poniedziałek, 12 maja 2025 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Z zapytania sql do arkusza


otwartyotwarty rozpoczął: wally2 postów: 7



napisał: jalamas
postów: 316


umieszczony:
13 grudnia 2006
12:47

  
Ma znaczenie, jeśli chodzi o ConnetionString (dla QueryTables też...),ale skoro nie chciało Ci się od razu opisać dokładnie poszukaj sobie:
http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForMySQL
http://www.carlprothman.net/Default.aspx?tabid=90#ODBCDriverForMySQL
napisał: wally2
postów: 59


umieszczony:
13 grudnia 2006
12:38

  
A czy to ma znaczenie że łączę się z bazą MySQL czy jakąś inną??
napisał: jalamas
postów: 316


umieszczony:
13 grudnia 2006
10:02

  
Referencje podałam przecież w komentarzach procedur.
Inne połączenia tutaj:
http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForMicrosoftJet
If using a Workgroup (System Database)

obejrzyj całą stronę….

Przykłady dla Excela tutaj (na dole szczegóły):
http://book.itzero.com/read/others/Apress.Definitive.Guide.to.Excel.VBA.Second.Edition.eBook-LiB_html/8218final/LiB0082.html

różnice tutaj:
http://www.classanytime.com/mis333k/sjdaoadorecordsets.html
http://msdn2.microsoft.com/en-us/library/aa164825(office.10).aspx
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnardao/html/daotoado.asp

ADO help:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadoobjmod.asp
po lewej linki do metod i właściwości, na dole też linki do szczegółów.

DAO help:
http://support.microsoft.com/kb/163002
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/office97/html/web/011.asp?frame=true

oraz cały help w Office !!!! dostępny pod CTRL+F1 na słowie kluczowym oraz w Object Browser po dodaniu referencji.
P.S.
Pisząc nowe aplikacje należy się raczej sugerować poniższym stwierdzeniem:
Microsoft suggest that you use the ADO (ActiveX Data Objects) methods of accessing data in your current database for all new applications and future version compatibility....
napisał: wally2
postów: 59


umieszczony:
13 grudnia 2006
08:40

  
Wow, super, dzięki, co prawda nie sprawdzałem tego, ale wygląda imponująco. Jednak mam pytania:
1. Jaka jest różnica między ActiveX Data 2.X Objects a Microsoft DAO 3.6 Object Library?
2. Gzie mogę dodać linie z danymi Loginem i Hasłami o uprawnienia do bazy?
3. Jakie referencje muszę odhaczyć w referencjach??
4. Może wiecie gdzie mogę poczytać o instrukcjach, które zostały użyte poniżej do obsługi bazy??
napisał: jalamas
postów: 316


umieszczony:
12 grudnia 2006
22:37

  
Można tak:
Sub testADO()
    Call fSql2XlsADO(ThisWorkbook.Worksheets("arkusz_docelowy").Range("$A$1"), 4)
End Sub

Public Function fSql2XlsADO(ZakresDocelowy As Range, _
                            ByVal lParametr As Long) As Boolean
' wtedy referencje do Microsoft ActiveX Data 2.X Objects Library
    On Error GoTo fSql2Xls_Error
    Dim Cn As ADODB.Connection
    Dim Rs As ADODB.Recordset
    Dim strSQL As String
    Dim strConn As String
    Dim bResult As Boolean
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
              SciezkaAndNazwaMdb & _
              ";Persist Security Info=False"
    strSQL = "SELECT tblpiwo.Id_piwo, tblpiwo.[ID_Producent], tblpiwo.[Nazwa_Piwo] " & _
             " FROM tblpiwo WHERE (tblpiwo.[ID_Producent]=" & _
             CStr(lParametr) & ");"
    Set Cn = New ADODB.Connection

    With Cn
        .CursorLocation = adUseClient
        .Open strConn
    End With
    Set Rs = New ADODB.Recordset
    With Rs
        .CursorType = adOpenStatic
        .LockType = adLockReadOnly
        .Open strSQL, Cn, , , adCmdText
        If Not (.BOF And .EOF) Then
            ZakresDocelowy.Parent.Cells.ClearContents
            ZakresDocelowy.CopyFromRecordset Rs
        End If
    End With
    bResult = True
fSql2Xls_Exit:
    fSql2XlsADO = bResult
    On Error Resume Next
    Rs.Close
    Set Rs = Nothing
    Cn.Close
    Set Cn = Nothing
fSql2Xls_Error:
    MsgBox "Błąd - " & Err.Number & vbCrLf _
           & "Opis - " & Err.Description & vbCrLf _
           & "Procedura - " & "fSql2Xls", vbExclamation, "VBAProject - FMdb2"
    Resume fSql2Xls_Exit
End Function

albo tak
Sub testDAO()
    Call fSql2XlsDAO(ThisWorkbook.Worksheets("arkusz_docelowy").Range("$A$1"), 4)
End Sub
Function fSql2XlsDAO(ZakresDocelowy As Range, _
                     ByVal lParametr As Long)
' wtedy referencje do Microsoft DAO 3.6 Object Library
    On Error GoTo FSql2DAO_Error

    Dim db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim strSQL As String
    Dim bResult As Boolean
    strSQL = "SELECT tblpiwo.Id_piwo, tblpiwo.[ID_Producent], tblpiwo.[Nazwa_Piwo] " & _
             " FROM tblpiwo WHERE (tblpiwo.[ID_Producent]=" & _
             CStr(lParametr) & ");"
    Set db = DAO.OpenDatabase(SciezkaAndNazwaMdb)
    Set Rs = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
    With Rs
        If Not (.BOF And .EOF) Then
            ZakresDocelowy.Parent.Cells.ClearContents
            ZakresDocelowy.CopyFromRecordset Rs
        End If
    End With
    bResult = True
FSql2DAO_Exit:
    fSql2XlsDAO = bResult
    On Error Resume Next
    Rs.Close
    Set Rs = Nothing
    db.Close
    Set db = Nothing
    Exit Function
FSql2DAO_Error:
    MsgBox "Błąd - " & Err.Number & vbCrLf & _
           "Opis - " & Err.Description & vbCrLf & _
           "Procedura - " & "FSql2DAO", vbExclamation
    Resume FSql2DAO_Exit
End Function

Argument lParametr pobierz sobie z komórki.
Jeśli stringowy dodaj apostrofy.
Można zastosować późne wiązanie.... wówczas nie trzeba referencji, a stałe należy zastąpić ich wartościami.

Możesz wykorzystać QueryTables ---> Menu/Dane/Pobierz dane zewnętrzne, lecz nie podałeś dokładnych wymagań....
napisał: admin
postów: 613


umieszczony:
12 grudnia 2006
22:23

  
A z jakiej bazy danych chcesz pobrać dane?
napisał: wally2
postów: 59


umieszczony:
12 grudnia 2006
15:22

  
Witam
Mam pytanie może nie tyle jak zrobić (choć za to bym był bardzo wdzięczny) ale skąd wziąć informacje.
Mam do rozwiązania następujący problem. Muszę połączyć się z bazą danych i za pomocą selecta zapisać informacje z bazy do arkusza .xls. Dodatkowo jeden z argumentów selecta znajduje się w kolumnie „A”. Wynik musi zapisać się w arkuszu w wierszach. Wszystko aktywowane przyciskiem.
Jeśli ktoś tak od ręki napisze mi komendy niezbędne do zrealizowania tego i/lub poda fajne źródło gdzie mogę dostać informację na ten temat to będę bardzo wdzięczny.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z