2016-04-25 13 views
1

Ich arbeite an einer Benutzerform, wo ich Daten aus Tabellen in SQL Server extrahieren, extrahiere ich Top 80 Prozent der Daten und legte es in Excel-Datei mit einem VBA-Code. Was ich tun möchte, ist von diesem 80 Prozent der Daten, die schon gespeichert in Excel-Blatt Ich möchte dem Benutzer erlauben, einen Prozentsatz der Daten aus dem Excel-Blatt durch die Eingabe nur die Zahl in der Textzone ist es möglich, dies zu tun ?Wählen Sie oben N Prozent der Daten in Blatt

Dies ist der Code i aus der Datenbank von SQL Server zu extrahieren, verwende:

Private Sub CommandButton1_Click() 

Dim sSql As String 
Dim rs As ADODB.Recordset 
Dim cn As ADODB.Connection 
Dim cmdObj As ADODB.Command 
Dim qf As Object 

Sheets("sheet1").Select 
Selection.ClearContents 

Set cn = New ADODB.Connection 
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=swat_admin;PASSWORD=swat_admin;Initial Catalog=SWAT_V2_PLL;Data Source=NCEFORREP" 
sSql = "select TOP 80 PERCENT func.coresitecode,func.SiteCode,feature_id, TOTAL_PNRs,PNR_rank_id from rpt.functional_site_mapping func inner join (select TOP 80 PERCENT * from rpt.top_PNR_contributing_sites order by TOTAL_PNRs DESC) PNR on func.ptf_id = pnr.ptf_id and func.coresitecode = pnr.coresitecode and func.sitecode = pnr.sitecode order by PNR_rank_id " 
Set rs = New ADODB.Recordset 
rs.CursorLocation = adUseClient 
rs.Open sSql, cn, adOpenForwardOnly, adLockReadOnly, adCmdText 

If rs.EOF Then 
MsgBox (" the record set is empty. rs.EOF = " & rs.EOF) 
Else 
MsgBox ("The number of rows returned from the query is: " & rs.RecordCount) 
Range("a1").Select 
For Each qf In rs.Fields 
    Range("a1").Offset(0, coloffset).Value = qf.Name 
    coloffset = coloffset + 1 
Next qf 

Range("a2").CopyFromRecordset rs 
rs.Close 
Set rs = Nothing 

End If 
End sub 

hier ist meine Excel-Datei, wenn jemand mir danken Ihnen helfen könnte:

http://www.cjoint.com/c/FDzjyTNB1Lv

+2

Schreibe den Code und eine Beschreibung über das Problem Sie konfrontiert nicht die ganze Datei hilft. – newguy

+0

Ich habe die Poste bearbeitet, der Code ist die Extraktion aus der DB, aber was ich brauche, ist von diesem Prozentsatz von 80 Prozent Ich brauche N Prozent, dass N vom Benutzer aus der Benutzerform in einer Textzone wie ein gewählt wird Filter von einem anderen Filter, aber wie die Textzone mit dem VBA-Makro in Beziehung zu setzen ist mein Problem – mateos

+0

Könnten Sie bitte näher auf '[...] Ich möchte dem Benutzer erlauben, einen Prozentsatz der Daten aus dem Excel-Blatt zu wählen, indem Sie nur die Nummer in der Textzone [...]? Ich verstehe nicht ganz, was Sie erreichen wollen. – Ralph

Antwort

0

Fabrikat sicher, dass Sie den Prozentsatz in einer Vb-Variable, sagen myPercent, * dann überprüfen Sie, es ist eine Zahl zwischen 0 und 100 * dann verwenden Sie es in Ihrer vorhandenen Abfrage

so

sSql = "select TOP 80 PERCENT 

wird

sSql = "select TOP " & myPercent & "PERCENT 

Hoffe, es

+0

hallo ich möchte es in der Eingabebox machen ist möglich? – mateos

Verwandte Themen